void OnApplicationQuit() { BattleFieldInputHandle.Instance().Destroy(); GUIManager.Instance().Destroy(); BulletManager.Instance().Destroy(); UnitManager.Instance().Destroy(); NetManager.Instance().Close(); }
public void OnJoinRoom(int team_id, int player_id) { BattleField.battle_field.my_team_id = team_id; BattleField.battle_field.my_player_id = player_id; FoW.FogOfWar.current.team = team_id; UnitManager.Instance().UpdateAllFogOfWar(); // 更新摄像机 Vector3 center = BattleFieldInputHandle.Instance().GetCurrentCameraCenter(); Vector3 born_pos = born_point[player_id].Vector3Value(); Vector3 offset = born_pos - center; Camera.main.transform.position += Vector3.right * offset.x + Vector3.forward * offset.z; // 初始化ui EventManager.Instance().PostEvent(EventConfig.EVENT_UI_OPEN, new object[] { "hero_operate" }); }
// Use this for initialization void Start() { Application.targetFrameRate = 60; QualitySettings.vSyncCount = 0; GUIManager.Instance().Init(); BulletManager.Instance().Init(); GDSKit.GDSMgr.Instance().InitGDSData(); // 初始化 battle_field = new BattleField(); BattleField.battle_field = battle_field; string map_path = ""; map_path = FileManager.Instance().GetReadOnlyPath() + "MapData/map_block_info"; battle_field.LoadMap(map_path); battle_field.SetBattleGridRenderer(battle_grid_renderer); BattleFieldInputHandle.Instance().Init(); UnitManager.Instance().Init(); }
public void MainThreadFunc(float delta_time) { // called every frame ProtoData proto_data = receiveBuffer.DequeueProtoData(); while (proto_data != null) { //Debug.Log("收到消息包 id : " + proto_data.id); switch (proto_data.id) { case ResponseId.JoinRoomResult: { JoinRoomResult result = proto_data.proto as JoinRoomResult; // 逻辑层更新 BL.BLTimelineController.Instance().OnJoinRoom(result.team_id); // 表现层更新 BattleField.battle_field.OnJoinRoom(result.team_id, result.team_id); } break; case ResponseId.BattleStart: { BattleStart result = proto_data.proto as BattleStart; BL.BLTimelineController.Instance().Start(); BattleFieldInputHandle.Instance().enabled = true; } break; case ResponseId.Tick: { TickList tick_list = proto_data.proto as TickList; //Debug.Log("收到同步帧 " + tick_list.frame); // 先把指令放入队列 for (int i = 0; i < tick_list.list.Count; ++i) { Tick tick = tick_list.list[i]; switch (tick.command_type) { case BL.TickCommandType.Move: { BL.BLIntVector3 dest_position; dest_position.x = tick.x; dest_position.y = 0; dest_position.z = tick.y; BL.BLCommandBase command = BL.BLCommandManager.Instance().CreateMove2PositionCommand(tick.cast_id, tick_list.frame, dest_position); BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command); } break; case BL.TickCommandType.PUT_HERO: { BL.BLCommandBase command = BL.BLCommandManager.Instance().CreatePutHeroCommand(tick.team_id, tick_list.frame, tick.hero_index); BL.BLCommandManager.Instance().AddCommand(command.cast_frame, command); } break; case BL.TickCommandType.PURSUE_TARGET: { } break; } ; } // 时间轴控制进行一帧, 分发指令 BL.BLTimelineController.Instance().frame_received++; } break; default: break; } ; proto_data = receiveBuffer.DequeueProtoData(); } }