Frame/Assets/Scripts/Procedure/Logic/GameSceneLogicProcedure.cs

60 lines
1.9 KiB
C#
Raw Normal View History

2024-04-04 23:51:14 +08:00
using System.Collections.Generic;
using Game.Pathfinding;
using JetBrains.Annotations;
using UnityEngine;
using System.Linq;
2024-04-08 18:20:55 +08:00
using System.Threading;
using Cysharp.Threading.Tasks;
using Game.Dinosaurs;
2024-04-08 18:20:55 +08:00
using Game.RayCast;
using Game.Room;
2024-04-04 23:51:14 +08:00
namespace Game
2024-04-03 18:07:05 +08:00
{
2024-04-04 23:51:14 +08:00
[Procedure(ProcedureType.GameSceneLogicProcedure)]
2024-04-03 18:07:05 +08:00
class GameSceneLogicProcedure : ProcedureBase
{
2024-04-09 13:22:52 +08:00
private float maxTime = 10f;
GameSceneMainUI sceneMainUI;
private DinosaursGameManager _dinosaursGameManager;
2024-04-09 13:22:52 +08:00
2024-04-03 18:07:05 +08:00
public override void OnEnter()
{
base.OnEnter();
EventManager.Instance.Subscribe(BackHallSSceneEventArgs.EventId, this.BackHallSceneEvent);
2024-04-03 18:07:05 +08:00
_dinosaursGameManager = new DinosaursGameManager();
2024-04-09 13:22:52 +08:00
sceneMainUI = Game.uiManager.GetUI<GameSceneMainUI>(UIType.GameSceneMainUI);
this.sceneMainUI.SetDinosaursGame(this._dinosaursGameManager);
_dinosaursGameManager.Init();
_dinosaursGameManager.StartGame();
2024-04-09 13:22:52 +08:00
}
2024-04-04 23:51:14 +08:00
public override void OnUpdate(float dateTime)
2024-04-09 13:22:52 +08:00
{
base.OnUpdate(dateTime);
_dinosaursGameManager.UpdateGame(dateTime);
2024-04-09 13:22:52 +08:00
}
2024-04-03 18:07:05 +08:00
private void BackHallSceneEvent(object sender, GameEventArgs e)
2024-04-08 18:20:55 +08:00
{
if (!_dinosaursGameManager.playerManager.currentPlayer.IsCanDelete)
return;
Game.uiManager.CloseAll();
// TODO
Game.resourceManager.UnloadSceneAsync(AssetConstPath.Assets_GameRes_Scene_Game);
_dinosaursGameManager.Dispose();
2024-04-08 18:20:55 +08:00
Game.uiManager.ShowUI(UIType.HallSceneMainUI);
Game.procedureManager.ChangeProcedure(ProcedureType.HallSceneMainLogicProcedure);
2024-04-08 18:20:55 +08:00
}
2024-04-03 18:07:05 +08:00
public override void OnLeave()
{
base.OnLeave();
EventManager.Instance.Unsubscribe(BackHallSSceneEventArgs.EventId, this.BackHallSceneEvent);
2024-04-03 18:07:05 +08:00
}
}
}