更新
This commit is contained in:
@@ -18,6 +18,8 @@ namespace AibisDream
|
||||
{
|
||||
#region 运行模式相关
|
||||
|
||||
public GameLoopState state;
|
||||
|
||||
private TalkSceneSO[] _totalSceneSos;
|
||||
|
||||
public RunMode runMode;
|
||||
@@ -129,7 +131,7 @@ namespace AibisDream
|
||||
// 音频全部暂停
|
||||
AudioManager.Instance.PauseAll();
|
||||
// 关闭Dialog
|
||||
DialogCanvasManager.Instance.CloseCanvas();
|
||||
DialogUIManager.Instance.CloseCanvas();
|
||||
}
|
||||
|
||||
public void ContinueGame()
|
||||
@@ -141,7 +143,7 @@ namespace AibisDream
|
||||
// 音频继续
|
||||
AudioManager.Instance.UnPauseAll();
|
||||
// 打开Dialog
|
||||
DialogCanvasManager.Instance.OpenCanvas();
|
||||
DialogUIManager.Instance.OpenCanvas();
|
||||
}
|
||||
|
||||
public void QuitGame()
|
||||
@@ -177,7 +179,7 @@ namespace AibisDream
|
||||
// 音频继续
|
||||
AudioManager.Instance.UnPauseAll();
|
||||
// 打开Dialog
|
||||
DialogCanvasManager.Instance.OpenCanvas();
|
||||
DialogUIManager.Instance.OpenCanvas();
|
||||
|
||||
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync();
|
||||
}
|
||||
@@ -240,6 +242,44 @@ namespace AibisDream
|
||||
{
|
||||
return _currentTalkSceneSo.Value.name;
|
||||
}
|
||||
|
||||
#region 事件处理
|
||||
|
||||
private IUnRegister[] _unRegisters;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
RegisterEvents();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
UnRegisterEvents();
|
||||
}
|
||||
|
||||
private void RegisterEvents()
|
||||
{
|
||||
_unRegisters = new IUnRegister[6];
|
||||
|
||||
_unRegisters[0] = EnumEventSystem.Global.Register(GameLoopEnum.GameStart, () => state.OnGame(true));
|
||||
_unRegisters[1] = EnumEventSystem.Global.Register(GameLoopEnum.PauseGame, () => state.OnPause(true));
|
||||
|
||||
_unRegisters[2] = EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, () => state.OnGame(false));
|
||||
_unRegisters[3] = EnumEventSystem.Global.Register(GameLoopEnum.UnPauseGame, () => state.OnPause(false));
|
||||
|
||||
_unRegisters[4] = EnumEventSystem.Global.Register(InteractionEventEnum.DialogStart, () => state.OnDialog(true));
|
||||
_unRegisters[5] = EnumEventSystem.Global.Register(InteractionEventEnum.DialogEnd, () => state.OnDialog(true));
|
||||
}
|
||||
|
||||
private void UnRegisterEvents()
|
||||
{
|
||||
foreach (var unRegister in _unRegisters)
|
||||
{
|
||||
unRegister.UnRegister();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -287,6 +327,28 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
|
||||
public struct GameLoopState
|
||||
{
|
||||
public bool isInGame;
|
||||
public bool isInDialog;
|
||||
public bool isInPause;
|
||||
|
||||
public void OnGame(bool isInGame)
|
||||
{
|
||||
this.isInGame = isInGame;
|
||||
}
|
||||
|
||||
public void OnPause(bool isInPause)
|
||||
{
|
||||
this.isInPause = isInPause;
|
||||
}
|
||||
|
||||
public void OnDialog(bool isInDialog)
|
||||
{
|
||||
this.isInDialog = isInDialog;
|
||||
}
|
||||
}
|
||||
|
||||
public enum RunMode
|
||||
{
|
||||
Product,
|
||||
|
||||
Reference in New Issue
Block a user