前提・実現したいこと
2秒たってから位置を移動というのを
コルーチンを使用してやりたいと思ってます。
発生している問題・エラーメッセージ
update関数だと動作する処理が、コルーチン内に同じのを設定すると 動作がしてくれません。Debug.Logは表示されます。
キューブにアタッチして動作をするかしないか確認しております。
どのように書き代えると動くか、またはヒントなどありましたらよろしくお願いいたします。
###Updateだと動く
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class mokuteki : MonoBehaviour 5{ 6 public Vector3 direction = new Vector3(0f, 3f, 0f); 7 public float speed = 1.0f; 8 9 void Update() 10 { 11 float step = speed * Time.deltaTime; 12 transform.position = Vector3.MoveTowards(transform.position, direction, step); 13 } 14}
コールチンに入れてみた 動作しない。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class coltinB : MonoBehaviour { public Vector3 direction = new Vector3(0f, 3f, 0f); public float speed = 1.0f; void Start() { StartCoroutine("ChangePsition"); } IEnumerator ChangePsition() { yield return new WaitForSeconds(2); Debug.Log("2秒"); float step = speed * Time.deltaTime; transform.position = Vector3.MoveTowards(transform.position, direction, step); } }
補足情報(FW/ツールのバージョンなど)
Unity2019.2.9f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/08 02:19