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
IEnumerator waiter() { // 等待4秒 yield return new WaitForSeconds(4); // 延迟后执行的操作 } StartCoroutine(waiter());
.
<.> 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.
IEnumerator waiter() { // 等待4秒真实时间 yield return new WaitForSecondsRealtime(4); // 延迟后执行的操作 }
<.> 4. Utilisez la coroutine Waituntil
Exécution du stationnement jusqu'à ce qu'elle remplisse les conditions spécifiées.
IEnumerator waiter() { float elapsedTime = 0; float waitTime = 4; while (elapsedTime < waitTime) { elapsedTime += Time.deltaTime; // 更新计时器显示 yield return null; } // 延迟后执行的操作 }
Tant que les conditions spécifiées sont vraies, l'exécution est suspendue.
<.> 6. Utilisez la fonction invoquée
IEnumerator waiter() { Debug.Log("等待玩家分数达到或超过100"); yield return new WaitUntil(() => playerScore >= 100); // 条件满足后执行的操作 }
Organisez une fonction une fois le retard spécifié.
<.> 7. Utilisez la fonction Update () et le temps.deltatime
IEnumerator waiter() { Debug.Log("等待退出按钮按下"); yield return new WaitWhile(() => !Input.GetKeyDown(KeyCode.Escape)); // 条件为假(按下退出按钮)后执行的操作 }
Utiliser <累> Temps cumulatif et fonctionnement du déclencheur lors de l'atteinte du seuil.
<对> Solution pour des problèmes spécifiques
Invoke("feedDog", 5); // 5秒后调用feedDog()函数
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!