public override void Start() { base.Start(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //初始化场景 SceneInnManager sceneInnManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInnManager>(); InnBuildBean innBuildData = gameData.GetInnBuildData(); sceneInnManager.InitScene(innBuildData.innWidth, innBuildData.innHeight); //innBuildData.ChangeInnSize(2, innBuildManager, 9, 9); //构建地板 InnBuildHandler.Instance.builderForFloor.StartBuild(); //构建墙壁 InnBuildHandler.Instance.builderForWall.StartBuild(); //构建建筑 InnBuildHandler.Instance.builderForFurniture.StartBuild(); //初始化客栈处理 InnHandler.Instance.InitInn(); InnHandler.Instance.InitRecord(); //其他场景切过来需要重置一下客栈数据 InnHandler.Instance.CloseInn(); //设置天气 GameWeatherHandler.Instance.SetWeather(GameCommonInfo.CurrentDayData.weatherToday); //打开UI UIHandler.Instance.manager.OpenUI <UIGameMain>(UIEnum.GameMain); //增加回调 GameTimeHandler.Instance.RegisterNotifyForTime(NotifyForTime); TimeBean timeData = gameData.gameTime; if (timeData.hour >= 24 || timeData.hour < 6 || GameTimeHandler.Instance.GetDayStatus() == GameTimeHandler.DayEnum.End) { //如果是需要切换第二天 EndDay(); } else { //如果是其他场景切换过来 GameTimeHandler.Instance.SetTime(timeData.hour, timeData.minute); GameTimeHandler.Instance.SetTimeStatus(false); //建造NPC RefreshScene(); //设置位置 Vector3 startPosition = sceneInnManager.GetTownEntranceLeft(); ControlForMoveCpt baseControl = GameControlHandler.Instance.StartControl <ControlForMoveCpt>(GameControlHandler.ControlEnum.Normal); baseControl.SetFollowPosition(startPosition); } //改变四季 GameSeasonsHandler.Instance.ChangeSeasons(); StartCoroutine(BuildNavMesh()); }
public void NotifyForTime(GameTimeHandler.NotifyTypeEnum notifyType, float timeHour) { if (notifyType == GameTimeHandler.NotifyTypeEnum.NewDay) { //初始化场景 GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); InnBuildBean innBuildData = gameData.GetInnBuildData(); SceneInnManager sceneInnManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInnManager>(); sceneInnManager.InitScene(innBuildData.innWidth, innBuildData.innHeight); //StartCoroutine(CoroutineForBuildNavMesh()); } }