Maison > développement back-end > C++ > Comment implémenter des pauses de jeu dans l'unité en utilisant différentes méthodes?

Comment implémenter des pauses de jeu dans l'unité en utilisant différentes méthodes?

DDD
Libérer: 2025-01-31 13:22:11
original
477 Les gens l'ont consulté

How to Implement Game Pauses in Unity Using Different Methods?

Les multiples méthodes d'implémentation du jeu d'unité du jeu Unity

Introduction

L'insertion ou la pause dans le jeu peut améliorer l'interaction et le rythme du jeu. Dans l'unité, une variété de technologies peuvent être utilisées pour y parvenir.

<.> 1.

Corporate

Le moyen le plus direct est d'utiliser WaitForSeconds coroutine. Cela suspendra l'exécution de la durée spécifiée par la coroutine. Par exemple:

Cette coroutine vous distribue le texte WaitForSeconds, avec un délai de 3 secondes entre l'affectation.

IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}
Copier après la connexion
<.> 2.

Corporate TextUI

similaire à <似>, sera également suspendu, mais il ignorera le partage du temps (par exemple, pour des effets d'action lents). WaitForSecondsRealtime

<.> 3.

WaitForSeconds WaitForSecondsRealtime

Vous pouvez également créer un retard en comparant la valeur de chaque trame et comparer sa valeur avec la valeur cible. Cela permet un temps d'attente dynamique et peut être interrompu.
IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}
Copier après la connexion

<.> 4. Time.deltaTime Fonction

Cette fonction exécute la coroutine jusqu'à ce qu'elle remplisse les conditions spécifiées. Par exemple, en attendant que le score du joueur atteigne la valeur cible:

float counter = 0;
float waitTime = 3;
bool quit = false;

void Update()
{
    if (!quit)
    {
        counter += Time.deltaTime;
    }

    if (!quit && counter >= waitTime)
    {
        // 等待时间已过时执行代码
        counter = 0;
    }
}
Copier après la connexion

<.> 5. Fonction WaitUntil

similaire à <似>, cette fonction exécute la coroutine, jusqu'à ce que les conditions ne soient plus vraies. Par exemple, attendez de maintenir le bouton:

IEnumerator Waiter()
{
    float targetScore = 100;
    yield return new WaitUntil(() => playerScore >= targetScore);
    // 加载下一关或执行所需操作
}
Copier après la connexion
<.> 6.

Fonction WaitWhile Cela organisera une fonction pour être appelée après retard. Par exemple, nourrissez le chien après 5 secondes:

WaitUntil <.> 7.

Fonction et
IEnumerator Waiter()
{
    yield return new WaitWhile(() => Input.GetKey(KeyCode.Escape));
    // 退出或执行所需操作
}
Copier après la connexion

Invoke similaire aux options 3, mais dans la fonction , vérifiez la condition:

<对> Solution pour vos problèmes
Invoke("feedDog", 5f);
void feedDog() { Debug.Log("正在喂狗"); }
Copier après la connexion

pour atteindre un retard dans votre code spécifique: Update() Time.deltaTime Utilisez la Coroutine

CALL dans votre fonction ou

. 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal