35 lines
804 B
C#
35 lines
804 B
C#
using UnityEngine;
|
|
|
|
namespace AibisDream.Framework
|
|
{
|
|
/// <summary>
|
|
/// 协程信号,用于在协程中等待外部触发
|
|
/// </summary>
|
|
public class CoroutineSignal
|
|
{
|
|
private bool _isSet = false;
|
|
|
|
/// <summary>
|
|
/// 信号是否已被触发
|
|
/// </summary>
|
|
public bool IsSet => _isSet;
|
|
|
|
/// <summary>
|
|
/// 触发信号,所有等待的协程将继续执行
|
|
/// </summary>
|
|
public void Set()
|
|
{
|
|
_isSet = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 在协程中等待信号被触发
|
|
/// </summary>
|
|
/// <returns>可用于 yield return 的 WaitUntil 对象</returns>
|
|
public WaitUntil Wait()
|
|
{
|
|
return new WaitUntil(() => _isSet);
|
|
}
|
|
}
|
|
}
|