質問編集履歴

4

誤字修正

2020/01/09 09:51

投稿

hukahirame
hukahirame

スコア19

test CHANGED
File without changes
test CHANGED
@@ -13,10 +13,6 @@
13
13
  public GameObject Enemy;
14
14
 
15
15
  private EnemyAI enemyAI;
16
-
17
- private SensorL sensorL;
18
-
19
- private bool checker;
20
16
 
21
17
  private void Start()
22
18
 
@@ -34,17 +30,7 @@
34
30
 
35
31
  {
36
32
 
37
- enemyAI.TurningL();
33
+ enemyAI.TurningL()
38
-
39
- if (checker==true)//1回だけ処理したい
40
-
41
- {
42
-
43
- sensorL.enabled = false;
44
-
45
- checker = false;
46
-
47
- }
48
34
 
49
35
  }
50
36
 
@@ -59,10 +45,6 @@
59
45
  {
60
46
 
61
47
  enemyAI.TurnStop();
62
-
63
- sensorL.enabled = true;
64
-
65
- checker = true;
66
48
 
67
49
  Debug.Log("Play");
68
50
 

3

スクリプトの追加

2020/01/09 09:51

投稿

hukahirame
hukahirame

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,103 @@
1
1
  Unity(C#)の質問です。あるスクリプトにOnTriggerStayとOntriggerExitを入れているのですが、なぜかExitが反応してくれません。Trigger関数は同一スクリプトに1つまでというような制限はあるのでしょうか?
2
2
 
3
3
  また、親オブジェクトの子として複数のトリガーをつけて当たったトリガーから親オブジェクトに処理を渡したいと思っているのですが、当たった子トリガーのみならず、他の子トリガーも反応してしまう。という仕様はありますでしょうか?
4
+
5
+ ※タグのOBJは登録してあります。
6
+
7
+ ↓子オブジェクトのうちの1つ
8
+
9
+ public class SensorR : MonoBehaviour
10
+
11
+ {
12
+
13
+ public GameObject Enemy;
14
+
15
+ private EnemyAI enemyAI;
16
+
17
+ private SensorL sensorL;
18
+
19
+ private bool checker;
20
+
21
+ private void Start()
22
+
23
+ {
24
+
25
+ enemyAI = Enemy.GetComponent<EnemyAI>();
26
+
27
+ }
28
+
29
+ private void OnTriggerStay(Collider other)
30
+
31
+ {
32
+
33
+ if (other.gameObject.tag == "OBJ")
34
+
35
+ {
36
+
37
+ enemyAI.TurningL();
38
+
39
+ if (checker==true)//1回だけ処理したい
40
+
41
+ {
42
+
43
+ sensorL.enabled = false;
44
+
45
+ checker = false;
46
+
47
+ }
48
+
49
+ }
50
+
51
+ }
52
+
53
+ private void OnTriggerExit(Collider other)//ここが呼ばれない
54
+
55
+ {
56
+
57
+ if (other.gameObject.tag == "OBJ")
58
+
59
+ {
60
+
61
+ enemyAI.TurnStop();
62
+
63
+ sensorL.enabled = true;
64
+
65
+ checker = true;
66
+
67
+ Debug.Log("Play");
68
+
69
+ }
70
+
71
+ }
72
+
73
+
74
+
75
+
76
+
77
+ }
78
+
79
+ ↓親オブジェクト
80
+
81
+ public class EnemyAI : MonoBehaviour
82
+
83
+ {
84
+
85
+ public void TurningL()//SensorRが動かす
86
+
87
+ {
88
+
89
+ transform.Rotate(0, 9 * Time.deltaTime, 0);
90
+
91
+ }
92
+
93
+
94
+
95
+ public void TurnStop()//ここが呼ばれない
96
+
97
+ {
98
+
99
+ Debug.Log("OK");
100
+
101
+ }
102
+
103
+

2

質問を少しわかりやすそうな言葉に変えました。

2020/01/09 09:48

投稿

hukahirame
hukahirame

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,3 @@
1
1
  Unity(C#)の質問です。あるスクリプトにOnTriggerStayとOntriggerExitを入れているのですが、なぜかExitが反応してくれません。Trigger関数は同一スクリプトに1つまでというような制限はあるのでしょうか?
2
2
 
3
- また、親オブジェクトの子として複数のトリガーをつけて当たったトリガーから親オブジェクトに処理を渡したいと思っているのですが、当たった子トリガーのみならず、他の子トリガーも反応してしまう。という仕様でしょうか?
3
+ また、親オブジェクトの子として複数のトリガーをつけて当たったトリガーから親オブジェクトに処理を渡したいと思っているのですが、当たった子トリガーのみならず、他の子トリガーも反応してしまう。という仕様はありますでしょうか?

1

文章がわかりずらかったので書き直しました。

2020/01/09 09:38

投稿

hukahirame
hukahirame

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,3 @@
1
1
  Unity(C#)の質問です。あるスクリプトにOnTriggerStayとOntriggerExitを入れているのですが、なぜかExitが反応してくれません。Trigger関数は同一スクリプトに1つまでというような制限はあるのでしょうか?
2
2
 
3
- また、親オブジェクトの子として複数のトリガーをつけて当たったトリガーを取得したいと思っているのですが、可能でしょうか?
3
+ また、親オブジェクトの子として複数のトリガーをつけて当たったトリガーから親オブジェクトに処理したいと思っているのですが、当たった子トリガーのみならず、他の子トリガーも反応してしまう。という仕様でしょうか?