こんにちは、詰まってしまったので質問させていただきます。
やりたい事は、題名の通りなのですが、ブロックに特定のオブジェクトが当たったら、見えなくして(当たらないようにする)一定時間たったら、また当たるようにするというものです。
やった事
実装をやってみたのですが、うまくいきません。
コードです
親についているコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class QuestionDaddy: MonoBehaviour 6{ 7 /// <summary> 8 /// なくなったら一定時間後生成 9 /// </summary> 10 /// <returns></returns> 11 public IEnumerator QuestionGenerator(GameObject question) 12 { 13 question.SetActive(false); 14 print("当たったP"); 15 var nowTime = 0f; 16 var timeLimit = 4f; 17 while (nowTime < timeLimit) { 18 nowTime += Time.deltaTime; 19 20 yield return null; 21 } 22 print("終わった"); 23 question.SetActive(true); 24 } 25}
子についているコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class HatenaBox : MonoBehaviour 6{ 7 [SerializeField] private QuestionDaddy daddy; 8 private void OnTriggerEnter(Collider other) 9 { 10 if(other.tag == "Cart") { 11 other.GetComponent<ItemCatch>().GetItem(); 12 StartCoroutine(daddy.QuestionGenerator(this.gameObject)); 13 } 14 } 15} 16
この方法でやってみたのですが、コルーチンが一回しか呼ばれないため、カウントが溜まりません、
何かいい方法はないでしょうか?回答お願いします。
追記です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/21 10:46