快速上手
您可以在任何地方启动协程而无需依赖 UnityEngine.MonoBehaviour。
using System.Collections;
public class Example
{
public void Start()
{
winS.Unity.Coroutine.Start(LoadCoroutine);
}
private IEnumerator LoadCoroutine()
{
yield return null;
}
}
在协程中等待
若您想在协程中等待,您可以使用 winS.Unity.Coroutine.Wait。
您也可以使用 winS.Unity.Coroutine.WaitRealtime 来等待真实时间。
using System.Collections;
using winS.Unity;
public class Example_Wait
{
public void Start()
{
winS.Unity.Coroutine.Start(WaitCoroutine);
}
private IEnumerator WaitCoroutine()
{
yield return new Wait(2f);
}
private IEnumerator WaitRealTimeCoroutine()
{
yield return new WaitRealtime(2f);
}
}
在协程中等待条件成立
若您想在协程中等待指定方法完成,您可以使用 winS.Unity.Coroutine.WaitUntilTrue:
using System.Collections;
using UnityEngine;
using winS.Unity;
public class Example_WaitUntilTrue
{
private bool assetloaded;
public void Start()
{
assetloaded = false;
LoadAsset();
winS.Unity.Coroutine.Start(WaitCoroutine);
}
private IEnumerator WaitCoroutine()
{
yield return new WaitUntilTrue(() => assetloaded);
}
private async void LoadAsset()
{
await Awaitable.WaitForSecondsAsync(5f);
assetloaded = true;
}
}