You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
942 B
32 lines
942 B
#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(); |
|
} |
|
} |
|
} |
|
|
|
|