Implémentation de retard d'unité Explication détaillée
La création de retard dans l'unité est essentielle pour gérer les processus de jeu, le tri des événements et la simulation du comportement du monde réel. Voici plusieurs méthodes pour atteindre un retard:
<.> 1.
/ WaitForSeconds
WaitForSecondsRealtime
StartCoroutine
: L'exécution du temps désigné (affecté par la vitesse du jeu). WaitForSeconds
: L'exécution du temps spécifié (non affecté par la vitesse du jeu).
WaitForSecondsRealtime
Utiliser ou
Cycle: augmentez progressivement la minuterie jusqu'à ce qu'elle atteigne la valeur requise.<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>
: Payez l'exécution d'un cadre.
Time.deltaTime
while
for
yield return null
: L'exécution a été suspendue jusqu'à ce que la condition soit vraie.
<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>
: L'exécution est suspendue lorsque la condition est vraie.
WaitUntil
WaitWhile
<示> Exemple:
WaitUntil
WaitWhile
: organiser une fonction une fois le retard retardé.
: similaire à , mais la fonction est appelée à plusieurs reprises avec un intervalle de temps spécifié.
<code class="language-C#">IEnumerator WaitUntilExample() { // 等待玩家分数达到100 yield return new WaitUntil(() => playerScore >= 100); // 加载下一关 SceneManager.LoadScene("NextLevel"); }</code>
Invoke
<.> 5. Basé sur
Invoke
InvokeRepeating
: Chaque trame augmente jusqu'à ce qu'elle atteigne la valeur requise.
Invoke
Exemple:
<code class="language-C#">Invoke("FeedDog", 5); // 5秒后调用FeedDog() InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。</code>
Résolvez votre problème: Update()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!