跳到主要内容

快速上手

启动一个协程

您可以在任何地方启动协程而无需依赖 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;
}
}