This commit is contained in:
2025-11-05 23:59:55 +08:00
parent 80b26ade3b
commit b10e641105
28 changed files with 1089 additions and 1263 deletions
+65 -3
View File
@@ -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,