chip-gameV3/Assets/Scripts/MenuGameplayTransit.cs
2026-08-12 17:10:17 +03:00

59 lines
1.3 KiB
C#

using DG.Tweening;
using System;
using UnityEngine;
public class MenuGameplayTransit : MonoBehaviour
{
[SerializeField] MenuLayoutController menu;
[SerializeField] GameplayLayoutController gameplay;
public event Action GameplayOpened;
Sequence _sequence;
bool locked = false;
public void GotoGameplay()
{
Lock();
if (_sequence != null)
{
_sequence.Kill();
_sequence = null;
}
_sequence = DOTween.Sequence();
_sequence.Append(menu.GetCloseSequence());
_sequence.Append(gameplay.GetOpenSequence());
_sequence.onComplete += Unlock;
_sequence.onComplete += NotifyGameplayOpened;
_sequence.PlayForward();
}
private void NotifyGameplayOpened()
{
GameplayOpened?.Invoke();
}
public void GotoMenu()
{
Lock();
if (_sequence != null)
{
_sequence.Kill();
_sequence = null;
}
_sequence = DOTween.Sequence();
_sequence.Append(gameplay.GetCloseSequence());
_sequence.Append(menu.GetOpenSequence());
_sequence.onComplete += Unlock;
_sequence.PlayForward();
}
private void Lock() => locked = true;
private void Unlock() => locked = false;
}