com.alicizax.unity.framework/Runtime/UI/Other/UIAnimationFlowTransition.cs

41 lines
1.1 KiB
C#
Raw Normal View History

2026-03-20 14:19:37 +08:00
#if ALICIZAX_UI_ANIMATION_SUPPORT
2026-03-17 17:15:31 +08:00
using System.Threading;
using Cysharp.Threading.Tasks;
using UnityEngine;
namespace AlicizaX.UI.Runtime
{
[DisallowMultipleComponent]
2026-03-20 14:19:37 +08:00
public sealed class UIAnimationFlowTransition : AnimationFlow.Runtime.AnimationFlow, IUITransitionPlayer
2026-03-17 17:15:31 +08:00
{
public int Priority => 0;
2026-03-17 17:15:31 +08:00
[SerializeField] private string openClip = "Open";
[SerializeField] private string closeClip = "Close";
public UniTask PlayOpenAsync(CancellationToken cancellationToken = default)
{
return PlayAsync(openClip, cancellationToken);
}
public UniTask PlayCloseAsync(CancellationToken cancellationToken = default)
{
return PlayAsync(closeClip, cancellationToken);
}
private UniTask PlayAsync(string clipName, CancellationToken cancellationToken)
{
if (cancellationToken.IsCancellationRequested || string.IsNullOrWhiteSpace(clipName))
{
return UniTask.CompletedTask;
}
2026-03-20 14:19:37 +08:00
return PlayAsync(clipName);
2026-03-17 17:15:31 +08:00
}
}
}
2026-03-20 14:19:37 +08:00
#endif