110 lines
2.7 KiB
C#
110 lines
2.7 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
using Framework;
|
|
using PhxhSDK;
|
|
|
|
public class ShowTransitionMgr: Singlenton<ShowTransitionMgr>
|
|
{
|
|
private UI_TransitionController _curUIWindow;
|
|
private bool _isInTransition;
|
|
private bool _isField;
|
|
|
|
public bool IsField => _isField;
|
|
private async UniTask _OpenUITransition(UI_TransitionController.ShowType showType)
|
|
{
|
|
_curUIWindow = await UI_TransitionController.Open(showType) as UI_TransitionController;
|
|
}
|
|
|
|
private void _CloseUITransition()
|
|
{
|
|
if (_curUIWindow != null)
|
|
{
|
|
_curUIWindow.CloseWindow();
|
|
}
|
|
}
|
|
|
|
#region #API
|
|
|
|
/// <summary>
|
|
/// 进入过度阶段
|
|
/// </summary>
|
|
public async UniTask EnterBlackTransition(bool isField = false)
|
|
{
|
|
_isField = isField;
|
|
await _OpenUITransition(UI_TransitionController.ShowType.BlackOnly);
|
|
_isInTransition = true;
|
|
}
|
|
|
|
public async UniTask EnterWhiteTransition(bool isField = false)
|
|
{
|
|
_isField = isField;
|
|
await _OpenUITransition(UI_TransitionController.ShowType.WhiteOnly);
|
|
_isInTransition = true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 退出过度阶段
|
|
/// </summary>
|
|
public void ExitTransition()
|
|
{
|
|
_CloseUITransition();
|
|
_isInTransition = false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 进入黑屏状态
|
|
/// </summary>
|
|
/// <param name="costTime"></param> 进入黑屏过程总共消耗时间
|
|
public async UniTask EnterBlack(float costTime = 0.5f)
|
|
{
|
|
if (!_isInTransition || _curUIWindow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
await _curUIWindow.EnterBlack(costTime);
|
|
}
|
|
|
|
public async UniTask EnterWhite(float costTime = 0.5f)
|
|
{
|
|
if (!_isInTransition || _curUIWindow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
await _curUIWindow.EnterWhite(costTime);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 退出黑屏状态
|
|
/// </summary>
|
|
/// <param name="costTime"></param> 退出黑屏过程总共消耗时间
|
|
public async UniTask ExitBlack(float costTime = 0.5f)
|
|
{
|
|
if (!_isInTransition || _curUIWindow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
await _curUIWindow.ExitBlack(costTime);
|
|
}
|
|
|
|
public async UniTask ExitWhite(float costTime = 0.5f)
|
|
{
|
|
if (!_isInTransition || _curUIWindow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
await _curUIWindow.ExitWhite(costTime);
|
|
}
|
|
|
|
public async UniTask ShowLevelTransition(UI_LevelTransitionController.OpenType type)
|
|
{
|
|
await UI_LevelTransitionController.Open(type);
|
|
await UniTask.Delay(1750);
|
|
UIManager.Instance.CloseWindow(UINameConst.UI_LevelTransition);
|
|
}
|
|
|
|
#endregion
|
|
} |