前提
Unity 2018.3.14f1で、obj1にアタッチされた「test1.cs」と、obj2にアタッチされた「Test2.cs」においての話です。
発生している問題
Playボタンを押して再生すると、最初はGetの値がずっと0のままなのですが、一度OnTriggerEnterの部分が実行されるとずっとGetに0と1が代入され続けてしまいます。
このGetへの連続した代入をなくし、Debug.Log("OnTriggerEnter通過");
の部分が実行されたときにのみGetに1を代入するにはどうしたらよいでしょうか。
ご教示いただけますと幸いです。
該当のソースコード
以下、test1.csのソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class test1 : MonoBehaviour 6{ 7 CraneGameController2 t2; 8 9 public int Get; 10 11 void Start() 12 { 13 t2 = GameObject.Find("obj2").GetComponent<Test2>(); 14 } 15 16 void OnTriggerEnter(Collider other) 17 { 18 if (t2.step == 8) 19 { 20 Debug.Log("OnTriggerEnter通過"); 21 Get = 1; 22 } 23 } 24 25 void Update() 26 { 27 Debug.Log("変数Getには"+Get+"が格納されています"); 28 } 29}
以下、Test2.csのソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test2 : MonoBehaviour 6{ 7 public int step = 1; 8 9 void Update() 10 { 11 step = 8; 12 } 13}
回答1件
あなたの回答
tips
プレビュー