Maison >développement back-end >C++ >Comment mettre en œuvre des retards dans les scripts d'unité?
Méthode d'implémentation de retard de script d'unité Explication détaillée
Dans le développement de jeux d'unité, des retards d'insertion sont souvent nécessaires pour être insérés entre les événements de jeu ou les mouvements. Cet article introduira plusieurs méthodes pour implémenter le retard de script Unity, de simple à avancé.
<.> 1. Utilisez Coroutine et WaitForsEconds
Le moyen le plus simple est d'utiliser l'entreprise et . Exemples comme suit:
<.> 2. Utilisez Coroutine et WaitForsEcondSrealtime WaitForSeconds
<code class="language-C#">IEnumerator waiter() { // 等待4秒 yield return new WaitForSeconds(4); // 延迟后执行的操作 } StartCoroutine(waiter());</code>similaire à , mais non affecté par
.
<.> 3. La coroutine basée sur le suivi du temps WaitForSeconds
Time.timeScale
Si une minuterie doit être affichée, vous pouvez utiliser cette méthode.
<code class="language-C#">IEnumerator waiter() { // 等待4秒真实时间 yield return new WaitForSecondsRealtime(4); // 延迟后执行的操作 }</code>
<.> 4. Utilisez la coroutine Waituntil
Exécution du stationnement jusqu'à ce qu'elle remplisse les conditions spécifiées.
<code class="language-C#">IEnumerator waiter() { float elapsedTime = 0; float waitTime = 4; while (elapsedTime < waitTime) { elapsedTime += Time.deltaTime; // 更新计时器显示 yield return null; } // 延迟后执行的操作 }</code><.> 5. Utilisez la coroutine à attente
Tant que les conditions spécifiées sont vraies, l'exécution est suspendue.
<.> 6. Utilisez la fonction invoquée
<code class="language-C#">IEnumerator waiter() { Debug.Log("等待玩家分数达到或超过100"); yield return new WaitUntil(() => playerScore >= 100); // 条件满足后执行的操作 }</code>
Organisez une fonction une fois le retard spécifié.
<.> 7. Utilisez la fonction Update () et le temps.deltatime
<code class="language-C#">IEnumerator waiter() { Debug.Log("等待退出按钮按下"); yield return new WaitWhile(() => !Input.GetKeyDown(KeyCode.Escape)); // 条件为假(按下退出按钮)后执行的操作 }</code>
Utiliser Temps cumulatif et fonctionnement du déclencheur lors de l'atteinte du seuil.
Solution pour des problèmes spécifiques
<code class="language-C#">Invoke("feedDog", 5); // 5秒后调用feedDog()函数</code>Insertion de la pause entre l'affectation , vous pouvez utiliser la coroutine suivante:
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!