protected override void OnEnter(ProcedureOwner procedureOwner, object userData) { base.OnEnter(procedureOwner, userData); GameCore.Input.Subscribe(InputEventType.On_SimpleTap, OnSimpleTap); addLogicHandler(new CraftCameraLogicHandler()); Timing.CallDelayed(0.2f, () => { var data = GameCore.WorldMap.GetLogicHandler <WorldMapSystemLogicHandler>(WorldMapSystemLogicHandler.HandlerID).GetCameraSetting(); GameCore.Event.Fire(this, FocusWorldPosWithLerpValueEventArgs.Create(GameCore.NetData.SelfCastle.Position, data.focusCastleLerpValue)); // 產生 preview hex 的 entity: selectGridEntity.Release(); selectGridEntity.LoadEntity(new MiscEntityData(GameCore.Entity.GenerateSerialId(), gridHexAssetName) { Position = GameCore.NetData.SelfCastle.Position }, (entity) => { entity.OnZoom(0); }); }); uiSerialId = GameCore.UI.OpenUIForm(UIFormId.UISelectBuildGrid); }
protected override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown) { base.OnLeave(procedureOwner, isShutdown); GameCore.Event.Unsubscribe(NetDataEvent.LearnTechEvent.EventId, onLearnTech); var data = GameCore.WorldMap.GetLogicHandler <WorldMapSystemLogicHandler>(WorldMapSystemLogicHandler.HandlerID).GetCameraSetting(); GameCore.Event.Fire(this, FocusWorldPosWithLerpValueEventArgs.Create(selfCastle.Position(), data.focusCastleLerpValue)); if (preset.buildingHex != null) { preset.buildingHex.Hide(); } selectGridEntity.Release(); preset = null; if (GameCore.UI.HasUIForm(uiFormSerialId.Value)) { GameCore.UI.CloseUIForm(uiFormSerialId.Value); } if (buildingEntityId != 0) { var entity = GameCore.Entity.GetEntity(buildingEntityId); if (entity != null) { entity.Logic.CachedTransform.parent.gameObject.SetActive(true); } } }
protected override void OnEnter(ProcedureOwner procedureOwner, object userData) { base.OnEnter(procedureOwner, userData); preset = userData as Preset; GameCore.Event.Subscribe(NetDataEvent.LearnTechEvent.EventId, onLearnTech); addLogicHandler(new CraftCameraLogicHandler()); Timing.CallDelayed(0.2f, () => { var data = GameCore.WorldMap.GetLogicHandler <WorldMapSystemLogicHandler>(WorldMapSystemLogicHandler.HandlerID).GetCameraSetting(); GameCore.Event.Fire(this, FocusWorldPosWithLerpValueEventArgs.Create(preset.position + offset, data.focusCastleLerpValue)); }); // 產生 preview hex 的 entity: selectGridEntity.Release(); selectGridEntity.LoadEntity(new MiscEntityData(GameCore.Entity.GenerateSerialId(), gridHexAssetName) { Position = preset.position }); // 開啟建造主建築介面 uiFormSerialId = GameCore.UI.OpenUIForm(UIFormId.UIMainBuildingList, preset); }
protected override void OnEnter(ProcedureOwner procedureOwner, object userData) { base.OnEnter(procedureOwner, userData); addLogicHandler(new WorldMapCameraLogicHandler()); addLogicHandler(new WorldMapClickLogicHandler()); // 登入進入世界地圖, 攝影機移至主堡 if (userData != null && userData is bool && (bool)userData) { var data = GameCore.WorldMap.GetLogicHandler <WorldMapSystemLogicHandler>(WorldMapSystemLogicHandler.HandlerID).GetCameraSetting(); GameCore.Event.Fire(this, FocusWorldPosWithLerpValueEventArgs.Create(GameCore.NetData.SelfCastle.Position, data.focusStartupLerpValue)); } }
protected override void OnEnter(ProcedureOwner procedureOwner, object userData) { base.OnEnter(procedureOwner, userData); preset = userData as Preset; GameCore.Event.Subscribe(NetDataEvent.LearnTechEvent.EventId, onLearnTech); addLogicHandler(new CraftCameraLogicHandler()); // 產生 preview hex 的 entity: selectGridEntity.Release(); selectGridEntity.LoadEntity(new MiscEntityData(GameCore.Entity.GenerateSerialId(), gridHexAssetName) { Position = preset.position }, (Entity) => { preset.buildingHex = Entity.GetComponent <PreviewBuildingHex>(); preset.buildingHex.Show(preset.masterTid); uiFormSerialId = GameCore.UI.OpenUIForm(UIFormId.UISubBuildingList, preset); }); // 隱藏主建築 buildingEntityId = 0; if (GameCore.NetData.TryGetSceneObjData(GameCore.NetData.SelfCastle.Guid, out selfCastle)) { (selfCastle as CastleObj).TryGetBuildGuid(preset.posIndex, out buildingEntityId); } if (buildingEntityId != 0) { var entity = GameCore.Entity.GetEntity(buildingEntityId); entity.Logic.CachedTransform.parent.gameObject.SetActive(false); } // wait for WorldMapCameraLogicHandler init() finish Timing.CallDelayed(0.2f, () => { var data = GameCore.WorldMap.GetLogicHandler <WorldMapSystemLogicHandler>(WorldMapSystemLogicHandler.HandlerID).GetCameraSetting(); GameCore.Event.Fire(this, FocusWorldPosWithLerpValueEventArgs.Create(preset.position + offset, data.focusCastleLerpValue)); }); }