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
DDDoriginal
2025-01-31 13:22:11437parcourir

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.

<code class="language-C#">IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSeconds(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}</code>
<.> 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.
<code class="language-C#">IEnumerator Waiter()
{
    TextUI.text = "欢迎来到数字巫师!";
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最高数字是 " + max);
    yield return new WaitForSecondsRealtime(3);
    TextUI.text = ("你选择的最低数字是 " + min);
}</code>

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

<code class="language-C#">float counter = 0;
float waitTime = 3;
bool quit = false;

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

    if (!quit && counter >= waitTime)
    {
        // 等待时间已过时执行代码
        counter = 0;
    }
}</code>

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

<code class="language-C#">IEnumerator Waiter()
{
    float targetScore = 100;
    yield return new WaitUntil(() => playerScore >= targetScore);
    // 加载下一关或执行所需操作
}</code>
<.> 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
<code class="language-C#">IEnumerator Waiter()
{
    yield return new WaitWhile(() => Input.GetKey(KeyCode.Escape));
    // 退出或执行所需操作
}</code>

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

Solution pour vos problèmes
<code class="language-C#">Invoke("feedDog", 5f);
void feedDog() { Debug.Log("正在喂狗"); }</code>

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:
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