Unity游戏开发经验分享unity3D技术分享

Unity中的协程理解

2020-07-04  本文已影响0人  能不写代码么

前言

方法介绍

    IEnumerator TestIEnumerator()
    {
        yield return new WaitForSeconds(3f);
    }
    IEnumerator TestIEnumerator()
    {
        yield return new WaitForSecondsRealtime(3f);
    }
    IEnumerator TestIEnumerator()
    {
        yield return new WaitForEndOfFrame();
    }
    IEnumerator TestIEnumerator()
    {
        yield return new WaitForFixedUpdate();
    }
using System.Collections;
using UnityEngine;

public class TestObb : MonoBehaviour
{
    [SerializeField]
    private float ieStart;

    private void Start()
    {
        //开启协程
        StartCoroutine(TestIEnumerator());
    }

    private void Update()
    {
        if(ieStart <= 10f)
        {
            ieStart += Time.deltaTime;
        }
    }

    IEnumerator TestIEnumerator()
    {
        Debug.LogError("Start TestIEnumerator");
        //当计时器达到 10s 继续执行协程
        yield return new WaitUntil(() => ieStart >= 10f);
        Debug.LogError("End TestIEnumerator");
    }
}
using System.Collections;
using UnityEngine;

public class TestObb : MonoBehaviour
{
    [SerializeField]
    private float ieStart;

    private void Start()
    {
        //开启协程
        StartCoroutine(TestIEnumerator());
    }

    private void Update()
    {
        if(ieStart <= 10f)
        {
            ieStart += Time.deltaTime;
        }
    }

    IEnumerator TestIEnumerator()
    {
        Debug.LogError("Start TestIEnumerator");
        //当计时器达到10s继续执行协程 , ieStart<10为 false
        yield return new WaitWhile(() => ieStart < 10f);
        Debug.LogError("End TestIEnumerator");
    }
}
上一篇 下一篇

猜你喜欢

热点阅读