前提・実現したいこと
一度、物体に衝突(貫通)するとstayがtrueになるプログラムを実行しているのですが、
その後、衝突していない状態になってもstayがtrueのままになってしまっています。
このときstayをfalseにしたいのですが、上手くいっていません。
ご助言いただけたら幸いです。
該当のソースコード
private bool stay; void Update(){ if(stay == false) { //何かしらの処理 } else { //何かしらの処理 } } private void OnTriggerStay(Collider collider) { if (collider.gameObject.tag == "Plane") { stay = true; Debug.Log("hit Player"); } }
試したこと
OnTriggerStayに加えて、OnTriggerExitを書き加えることで、Planeから離れた際にstayがfalseになるようにしましたが、Planeは任意の場所に出現して、1秒後に消える処理をしているので、OnTriggerExitの条件にマッチしていないことから、OnTriggerExitが実行されません。
//省略 private void OnTriggerStay(Collider collider) { if (collider.gameObject.tag == "Plane") { stay = true; Debug.Log("hit"); } } private void OnTriggerExit(Collider collider) { if (collider.gameObject.tag == "Plane") { stay = false; Debug.Log("safe"); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/10 04:38