質問編集履歴
3
画像の削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
3
|
-
![イメージ説明](fcb743164125a7dc9527990511243476.png)
|
4
2
|
|
5
3
|
上記画像の2点の空のオブジェクト"groundCheck_C"、“HeadCheck_C”の座標に接触したオブジェクトのタグを
|
6
4
|
|
2
タグの修正、タイトル修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2点のオブジェクト接触に
|
1
|
+
2点の空オブジェクト接触について細かい条件指定を行いたい
|
test
CHANGED
@@ -106,9 +106,7 @@
|
|
106
106
|
|
107
107
|
foreach (Collider2D[] ladderCheckList in ladderCheckCollider) {
|
108
108
|
|
109
|
-
foreach (Collider2D ladderCheck in ladderCheckList) {
|
109
|
+
foreach (Collider2D ladderCheck in ladderCheckList) {
|
110
|
-
|
111
|
-
|
112
110
|
|
113
111
|
if (ladderCheck != null)
|
114
112
|
|
@@ -118,7 +116,7 @@
|
|
118
116
|
|
119
117
|
{
|
120
118
|
|
121
|
-
|
119
|
+
if (ladderCheck.tag == "Ladder") {Check_OnLadderObject = ladderCheck.gameObject; }
|
122
120
|
|
123
121
|
}
|
124
122
|
|
@@ -142,7 +140,41 @@
|
|
142
140
|
|
143
141
|
```
|
144
142
|
|
143
|
+
Collider2D[][] ladderCheckCollider = new Collider2D[2][];
|
144
|
+
|
145
|
+
ladderCheckCollider[0] = Physics2D.OverlapPointAll(HeadCheck_C.position);
|
146
|
+
|
147
|
+
ladderCheckCollider[1] = Physics2D.OverlapPointAll(groundCheck_C.position);
|
148
|
+
|
149
|
+
foreach (Collider2D[] ladderCheckList in ladderCheckCollider) {
|
150
|
+
|
151
|
+
foreach (Collider2D ladderCheck in ladderCheckList) {
|
152
|
+
|
153
|
+
if (ladderCheck != null)
|
154
|
+
|
155
|
+
{
|
156
|
+
|
157
|
+
if (!ladderCheck.isTrigger)
|
158
|
+
|
159
|
+
{
|
160
|
+
|
145
161
|
if (ladderCheck.tag == "Ladder") {Check_OnLadderObject = ladderCheck.gameObject; }
|
162
|
+
|
163
|
+
}
|
164
|
+
|
165
|
+
}
|
166
|
+
|
167
|
+
}
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
if (Check_OnLadderObject != null)
|
172
|
+
|
173
|
+
{
|
174
|
+
|
175
|
+
ladder = true;
|
176
|
+
|
177
|
+
}
|
146
178
|
|
147
179
|
```
|
148
180
|
|
1
質問内容を簡略化
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,19 +52,23 @@
|
|
52
52
|
|
53
53
|
protected virtual void FixedUpdate() {
|
54
54
|
|
55
|
-
|
55
|
+
groundCheck_OnRoadObject = null;
|
56
56
|
|
57
|
-
|
57
|
+
groundCheck_OnMoveObject = null;
|
58
58
|
|
59
|
-
|
59
|
+
groundCheck_OnEnemyObject = null;
|
60
60
|
|
61
|
+
Check_OnLadderObject = null;
|
62
|
+
|
63
|
+
|
64
|
+
|
61
|
-
Collider2D[][] groundCheckCollider = new Collider2D[3][];
|
65
|
+
Collider2D[][] groundCheckCollider = new Collider2D[3][];
|
62
66
|
|
63
67
|
groundCheckCollider[0] = Physics2D.OverlapPointAll(groundCheck_L.position);
|
64
68
|
|
65
69
|
groundCheckCollider[1] = Physics2D.OverlapPointAll(groundCheck_C.position);
|
66
70
|
|
67
|
-
groundCheckCollider[2] = Physics2D.OverlapPointAll(groundCheck_R.position);
|
71
|
+
groundCheckCollider[2] = Physics2D.OverlapPointAll(groundCheck_R.position);
|
68
72
|
|
69
73
|
foreach (Collider2D[] groundCheckList in groundCheckCollider) {
|
70
74
|
|
@@ -78,15 +82,21 @@
|
|
78
82
|
|
79
83
|
grounded = true;//grounded = 地面に立った状態にここで設定
|
80
84
|
|
81
|
-
|
85
|
+
air = false;
|
82
86
|
|
83
|
-
|
87
|
+
if (groundCheck.tag == "Road") {groundCheck_OnRoadObject = groundCheck.gameObject;}
|
84
88
|
|
85
|
-
|
89
|
+
else if (groundCheck.tag == "MoveObject") {groundCheck_OnMoveObject = groundCheck.gameObject;}
|
86
90
|
|
87
|
-
|
91
|
+
else if (groundCheck.tag == "Enemy") {groundCheck_OnEnemyObject = groundCheck.gameObject;}
|
88
92
|
|
93
|
+
}
|
89
94
|
|
95
|
+
} //if (groundCheckCollider[1] != null){ }
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
}
|
90
100
|
|
91
101
|
Collider2D[][] ladderCheckCollider = new Collider2D[2][];
|
92
102
|
|
@@ -94,32 +104,58 @@
|
|
94
104
|
|
95
105
|
ladderCheckCollider[1] = Physics2D.OverlapPointAll(groundCheck_C.position);
|
96
106
|
|
97
|
-
foreach (Collider2D[] ladderCheckList in ladderCheckCollider)
|
107
|
+
foreach (Collider2D[] ladderCheckList in ladderCheckCollider) {
|
108
|
+
|
109
|
+
foreach (Collider2D ladderCheck in ladderCheckList) {
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
if (ladderCheck != null)
|
114
|
+
|
115
|
+
{
|
116
|
+
|
117
|
+
if (!ladderCheck.isTrigger)
|
118
|
+
|
119
|
+
{
|
120
|
+
|
121
|
+
if (ladderCheck.tag == "Ladder") {Check_OnLadderObject = ladderCheck.gameObject; }
|
122
|
+
|
123
|
+
}
|
124
|
+
|
125
|
+
}
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
if (Check_OnLadderObject != null)
|
98
132
|
|
99
133
|
{
|
100
134
|
|
101
|
-
|
135
|
+
ladder = true;
|
102
136
|
|
103
|
-
{
|
104
|
-
|
105
|
-
if (ladderCheck != null) {
|
106
|
-
|
107
|
-
if (!ladderCheck.isTrigger) {
|
108
|
-
|
109
|
-
ladder = true;//ladder = はしごに接触した状態にここで設定
|
110
|
-
|
111
|
-
|
137
|
+
}
|
112
|
-
|
113
|
-
}}}}}
|
114
138
|
|
115
139
|
```
|
116
140
|
|
117
141
|
### 発生している問題
|
118
142
|
|
119
|
-
|
143
|
+
```
|
120
144
|
|
121
|
-
|
145
|
+
if (ladderCheck.tag == "Ladder") {Check_OnLadderObject = ladderCheck.gameObject; }
|
122
146
|
|
123
|
-
|
147
|
+
```
|
124
148
|
|
125
|
-
|
149
|
+
この部分のコードの内容は"groundCheck_C"、“HeadCheck_C”の座標に何らかのオブジェクトが接触すればladder = true;にするという大雑把な条件式の様です。
|
150
|
+
|
151
|
+
細かい条件の指定方法が分かりませんでした。
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
例えばこれを
|
156
|
+
|
157
|
+
・"groundCheck_C"のみオブジェクトに接触
|
158
|
+
|
159
|
+
・“HeadCheck_C”のみオブジェクトに接触
|
160
|
+
|
161
|
+
で指定する場合、条件式をどのように記述すればよいのでしょうか?
|