37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace DDD
|
|
{
|
|
[CreateAssetMenu(fileName = "FadeSceneTransitionHandlerSo", menuName = "GameFramework/FadeSceneTransitionHandlerSo")]
|
|
public class FadeSceneTransitionHandlerSo : SceneTransitionHandler
|
|
{
|
|
[SerializeField]
|
|
private float _delayBeforeFadeIn = 1f;
|
|
|
|
[SerializeField]
|
|
private float _fadeOutDuration = 1f;
|
|
|
|
[SerializeField]
|
|
private float _fadeInDuration = 0.5f;
|
|
|
|
public override async Task OnBeforeSceneActivate()
|
|
{
|
|
var evt = GameEvents.FadeOutEvent;
|
|
evt.Duration = _fadeOutDuration;
|
|
EventBus.Broadcast(evt);
|
|
await evt.WaitAsync();
|
|
}
|
|
|
|
public override async Task OnAfterSceneActivate()
|
|
{
|
|
float seconds = _delayBeforeFadeIn * 1000;
|
|
await Task.Delay((int)(seconds));
|
|
|
|
var evt = GameEvents.FadeInEvent;
|
|
evt.Duration = _fadeInDuration;
|
|
EventBus.Broadcast(evt);
|
|
await evt.WaitAsync();
|
|
}
|
|
}
|
|
} |