You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
942 B
C#
33 lines
942 B
C#
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
|
|
|
|
using System.Threading;
|
|
using UnityEngine;
|
|
|
|
namespace Cysharp.Threading.Tasks.Triggers
|
|
{
|
|
public static partial class AsyncTriggerExtensions
|
|
{
|
|
public static AsyncAwakeTrigger GetAsyncAwakeTrigger(this GameObject gameObject)
|
|
{
|
|
return GetOrAddComponent<AsyncAwakeTrigger>(gameObject);
|
|
}
|
|
|
|
public static AsyncAwakeTrigger GetAsyncAwakeTrigger(this Component component)
|
|
{
|
|
return component.gameObject.GetAsyncAwakeTrigger();
|
|
}
|
|
}
|
|
|
|
[DisallowMultipleComponent]
|
|
public sealed class AsyncAwakeTrigger : AsyncTriggerBase<AsyncUnit>
|
|
{
|
|
public UniTask AwakeAsync()
|
|
{
|
|
if (calledAwake) return UniTask.CompletedTask;
|
|
|
|
return ((IAsyncOneShotTrigger)new AsyncTriggerHandler<AsyncUnit>(this, true)).OneShotAsync();
|
|
}
|
|
}
|
|
}
|
|
|