unity中多重Coroutine解决实际问题,比如暂停

来源:互联网 发布:朋友圈转发视频软件 编辑:程序博客网 时间:2024/05/21 22:41

这里给出一个例子,可以给一定启发。在游戏里面 timescale =0 ,ngui会废,所以这种情况下

不要用 invoke 和invokerepeating 以及涉及到等待时间的用法(比如Destroy(gameobject,3)),

全都用协程代替,可以用下面类似的办法实现伪暂停!!!


using UnityEngine;
using System.Collections;

public class twoIEnumerator : MonoBehaviour {

    // Use this for initialization
    void Start () {
        StartCoroutine ("long1");
        Invoke ("stopLong2",2);
    }
    IEnumerator long1()
    {
        yield return long2 ();
        Debug.LogError ("Over");
    }
    IEnumerator long2()
    {
        yield return new WaitForSeconds(100);
    }
    void stopLong2()
    {
        StopCoroutine ("long2");
    }
    // Update is called once per frame
    void Update () {
    
    }
}

0 0
原创粉丝点击