How to make a delay with C# in Unity3D?

后端 未结 3 893
北海茫月
北海茫月 2021-01-26 02:14

I just started to learn c# in unity. I followed a tutorial, but i wanna add some things.

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

pub         


        
3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-26 02:44

    In Unity waits are usually done with help of a WaitForSeconds class.

    In your case you will have to change OnTriggerEnter and SetCountText a bit so that they return IEnumerable type:

    IEnumerable OnTriggerEnter(Collider other) 
    {
        if (other.gameObject.CompareTag ( "Pick Up"))
        {
            other.gameObject.SetActive (false);
            count = count + 1;
            yield return SetCountText ();
        }
    }
    
    IEnumerable SetCountText ()
    {
        countText.text = "Count: " + count.ToString ();
        if (count >= 1)
        {
            winText.text = "You Win!";
            yield return new WaitForSeconds(5); // Wait for seconds before changing level
            Application.LoadLevel(1);
        }
    }
    

提交回复
热议问题