xミリ秒ごとに繰り返される特定の位置で同じ速度で動いている敵を生成したい。Unity:時間の正確な位置にある要素を生成する
Unityのupdate()関数の問題は、非決定的な時間に発生するため、正確な位置にスポーンすることができないため、要素の遅延や不正確な位置が得られます。 どうすればこの問題を解決できますか?
xミリ秒ごとに繰り返される特定の位置で同じ速度で動いている敵を生成したい。Unity:時間の正確な位置にある要素を生成する
Unityのupdate()関数の問題は、非決定的な時間に発生するため、正確な位置にスポーンすることができないため、要素の遅延や不正確な位置が得られます。 どうすればこの問題を解決できますか?
コルーチンは、定期的にメソッドをトリガするのに本当に便利です。
this Unity forum postをチェックすると、その動作を確認できます。
IEnumerator SpawnDelay()
{
Spawn(); //your spawn method
yield return new WaitForSeconds(5);
StartCoroutine("SpawnDelay"); //Restarting the coroutine after the 5 sec delay
}
必要な場合は、たとえば0.5秒ごとに正確に起動します。Coroutineはそれを処理できますか?またはこの場合、オフセットが存在する可能性がありますか? – Yuvals
コルーチンは、上記で使用したコードの指定された遅延後に再起動するので、0.5秒ごとにアイテムをスポーンできる必要があります。しかし、ポジションについては、スポーンポジションが変化していない場合は、すべて同じ位置にスポーンする必要があります。しかし、衝突はそれらで処理されていますか?前に生成されたアイテムがまだ途中にある場合は、オフセットの原因になる可能性があります。もしそうでなければ、なぜポジションが間違っているのか分かりません。 – YumeYume
例coroutines [link](https://docs.unity3d.com/Manual/Coroutines.html)を使用できます。 'WaitForSeconds()'クラスで時間の遅れを実現します。 –
また、 'InvokeRepeating'を使用してください。 –
実際にこのフレームで正確にする必要がある場合は、代わりにFixedUpdate()を使用できます –