35 lines
1.1 KiB
C#
35 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(SceneType sceneType)
|
|
{
|
|
var evt = new FadeOutEvent(_fadeOutDuration);
|
|
EventBus.Broadcast(evt);
|
|
await evt.WaitAsync();
|
|
}
|
|
|
|
public override async Task OnAfterSceneActivate(SceneType sceneType)
|
|
{
|
|
float seconds = _delayBeforeFadeIn * 1000;
|
|
await Task.Delay((int)(seconds));
|
|
|
|
var evt = new FadeInEvent(_fadeInDuration);
|
|
EventBus.Broadcast(evt);
|
|
await evt.WaitAsync();
|
|
}
|
|
}
|
|
} |