快速上手
启动一个协程
您可以在任何地方启动协程而无需依赖 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 ExampleWait
{
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 System.Threading.Tasks;
using winS.Unity;
public class ExampleWaitUntilTrue
{
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 Task.Delay(5000);
assetloaded = true;
}
}