unity遅延実装の詳細な説明
ゲームプロセスの管理、イベントの並べ替え、現実世界の行動のシミュレーションの管理には、統一の遅延の作成が不可欠です。遅延を達成するためのいくつかの方法を以下に示します:
1。
WaitForSeconds
:コルーチン関数を宣言します。 WaitForSecondsRealtime
StartCoroutine
:指定された時間の実行(ゲームの速度の影響を受けません)。 WaitForSeconds
WaitForSecondsRealtime
またはサイクルを使用:必要な値に達するまでタイマーを徐々に増やします。 :フレームの実行を支払います。
<code class="language-C#">IEnumerator WaitForSecondsExample() { // 旋转90度 transform.Rotate(Vector3.right * 90); // 等待4秒(不受游戏速度影响) yield return new WaitForSecondsRealtime(4); // 旋转40度 transform.Rotate(Vector3.right * 40); // 等待2秒(受游戏速度影响) yield return new WaitForSeconds(2); // 旋转20度 transform.Rotate(Vector3.right * 20); }</code>例:
3。
Time.deltaTime
while
:条件が真実になるまで、実行は中断されました。 for
yield return null
<code class="language-C#">IEnumerator TimeBasedLoopExample() { // 旋转90度 transform.Rotate(Vector3.right * 90); // 等待4秒(受游戏速度影响) float timer = 0; while (timer < 4) { timer += Time.deltaTime; yield return null; } // 旋转40度 transform.Rotate(Vector3.right * 40); // 等待2秒(不受游戏速度影响) timer = 0; while (timer < 2) { timer += Time.deltaTime; yield return null; } // 旋转20度 transform.Rotate(Vector3.right * 20); }</code>
<<>:遅延が遅れた後、関数をアレンジします。 WaitUntil
WaitWhile
<<>
WaitUntil
<示>例:WaitWhile
<时>タイマー変数:各フレームは、必要な値に達するまで増加します。
<code class="language-C#">IEnumerator WaitUntilExample() { // 等待玩家分数达到100 yield return new WaitUntil(() => playerScore >= 100); // 加载下一关 SceneManager.LoadScene("NextLevel"); }</code>
ステートメント:タイマーが必要な値に達するかどうかを確認し、必要なコードを実行します。 Invoke
Invoke
問題を解決します:
以上がゲームプレイとイベントシーケンスのためにUnityの遅延を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。