/// <summary> /// 调用对应的发呆 /// </summary> /// <param name="msgInt"></param> private void Idle(MsgInt msgInt) { GameObject idleEntity = MgrCenter.EntityMgr.GetItem(msgInt.Int); if (idleEntity != null) { SoilderDriver soilderDriver = idleEntity.GetComponent <SoilderDriver>(); soilderDriver.Idle(); } }
/// <summary> /// 处理应用内消息 /// </summary> /// <param name="msg"></param> public override void ProcessEvent(MsgBase msg) { switch (msg.MsgId) { case (ushort)NetEventTime.CheckTimeRequest: MsgInt msgInt = msg as MsgInt; DelayCheckDTO delayCheckDTO = new DelayCheckDTO(msgInt.Int); //check多少次 delayCheckDTO.timeStamps.Add(DateTime.Now.Ticks); Send(TimeProtocol.CHECK_CREQ, delayCheckDTO); break; } }
/// <summary> /// 应用内消息处理 /// </summary> /// <param name="msg"></param> public override void ProcessEvent(MsgBase msg) { switch (msg.MsgId) { case (ushort)BuildingFightEvent.DefenseTowerAtkCreq: MsgInt msgInt = msg as MsgInt; Send(FightProtocol.DAMAGE_CREQ, msgInt.Int); break; case (ushort)BuildingFightEvent.DefenseTowerIdle: MsgInt msgInt2 = msg as MsgInt; Send(FightProtocol.IDLE_CREQ, msgInt2.Int); break; case (ushort)MoveEvent.PosSyncClientRequest: MsgPosSync msgPosSync = msg as MsgPosSync; Vector3 pos = msgPosSync.pos; Vector3 dir = msgPosSync.dir; Send(FightProtocol.POS_SYNC_CREQ, new PosSyncDTO(msgPosSync.instanceId, pos.x, pos.y, pos.z, dir.x, dir.y, dir.z, msgPosSync.timeStamp)); break; case (ushort)SoilderFightEvent.SoilderAtkClientRequest: MsgAtkRequest msgAtkRequest = msg as MsgAtkRequest; Send(FightProtocol.ATTACK_CREQ, new AttackDTO(msgAtkRequest.attackerId, msgAtkRequest.targetId, DateTime.Now.Ticks)); break; case (ushort)MoveEvent.MoveClientRequest: MsgMoveRequest msgMoveRequest = msg as MsgMoveRequest; Send(FightProtocol.MOVE_CREQ, new PathRequestDTO(msgMoveRequest.InstanceId, msgMoveRequest.SourcePos.x, msgMoveRequest.SourcePos.y, msgMoveRequest.SourcePos.z, msgMoveRequest.TargetPos.x, msgMoveRequest.TargetPos.y, msgMoveRequest.TargetPos.z)); break; case (ushort)SoilderFightEvent.SoilderIdleClientRequest: MsgInt msgInt5 = msg as MsgInt; Send(FightProtocol.IDLE_CREQ, msgInt5.Int); break; } }
/// <summary> /// 处理应用内信息 /// </summary> /// <param name="msg"></param> public override void ProcessEvent(MsgBase msg) { switch (msg.MsgId) { case (ushort)NetEventSelect.EnterRequest: Send(SelectProtocol.ENTER_CREQ); break; case (ushort)NetEventSelect.SelectRequest: MsgInt msgInt = msg as MsgInt; Send(SelectProtocol.SELECT_CREQ, msgInt.Int); break; case (ushort)NetEventSelect.ReadyRequest: Send(SelectProtocol.READY_CREQ); break; } }
private int selectedHeroId = -1;//已选择的英雄Id /// <summary> /// 处理消息 /// </summary> /// <param name="msg"></param> public override void ProcessEvent(MsgBase msg) { switch (msg.MsgId) { case (ushort)NetEventSelect.EnterSres: //服务器允许进入选择 MsgSelectRoom msgSelectRoom = msg as MsgSelectRoom; Debug.LogWarning("enter sres"); if (msgSelectRoom.selectRoom != null) { this.selectRoom = msgSelectRoom.selectRoom; SetPlayers(this.selectRoom); } InitialSelectHeroGrids(); break; case (ushort)AssetLoadEvent.AssetLoaded: //图片加载完成 MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded; string assetIndex = msgAssetLoaded.assetName.Split('_')[0]; int index = int.Parse(assetIndex); Texture2D texture = msgAssetLoaded.asset as Texture2D; Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); OnSpriteLoaded(index, sprite); break; case (ushort)NetEventSelect.SomeOneEntered: //有玩家进入了 MsgInt msgInt = msg as MsgInt; UpdatePlayerInfoOnEnter(msgInt.Int, true); break; case (ushort)SelectUIEvent.HeroPressed: //按下了某个英雄 MsgInt msgIndex = msg as MsgInt; selectedHeroId = msgIndex.Int; heroSelectGridBox.UIOnSomeHeroSelected(msgIndex.Int); break; case (ushort)NetEventSelect.SomeOneSelected: //某人选择了英雄 MsgSelectDTO msgSelectDTO = msg as MsgSelectDTO; SelectDTO selectDTO = msgSelectDTO.SelectData; if (selectDTO != null) { UpdatePlayerHero(selectDTO.userId, selectDTO.heroId); } if (TeamId(selectDTO.userId) == this.teamId) { UpdateHeroCouldSelect(selectDTO); } break; case (ushort)NetEventSelect.SomeOneReady: //有人准备了 MsgSelectDTO msgSelect = msg as MsgSelectDTO; SelectDTO select = msgSelect.SelectData; UpdatePlayerReady(select.userId, select.isReady); break; } }
/// <summary> /// 消息处理 /// </summary> /// <param name="msg"></param> public override void ProcessEvent(MsgBase msg) { switch (msg.MsgId) { case (ushort)AssetLoadEvent.AssetLoaded: //HUD prefab加载完成后,创建HUD MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded; if (msgAssetLoaded.bundleName == hudAssetABName && msgAssetLoaded.assetName == hudAssetName) { this.hudAsset = msgAssetLoaded.asset; foreach (HUDInfo hudInfo in loadHUDDic.Values) { CreateHUD(hudAsset, hudInfo.id, hudInfo.name, hudInfo.percent, hudInfo.pos); } loadHUDDic.Clear(); } break; case (ushort)HUDEvent.CreateHUD: MsgHUD msgHUD = msg as MsgHUD; if (hudAsset == null) { if (loadHUDDic.Count == 0) { SendMsg(Msgs.GetMsgAssetLoadRequest((ushort)AssetLoadEvent.LoadRequest, hudAssetABName, hudAssetName)); } if (!loadHUDDic.ContainsKey(msgHUD.Id)) { loadHUDDic.Add(msgHUD.Id, new HUDInfo(msgHUD.Name, msgHUD.Id, msgHUD.Percent, msgHUD.Pos)); } } else { CreateHUD(hudAsset, msgHUD.Id, msgHUD.Name, msgHUD.Percent, msgHUD.Pos); } break; case (ushort)HUDEvent.DestroyHUD: //销毁HUD MsgInt msgInt = msg as MsgInt; UnRegisterHUD(msgInt.Int); break; case (ushort)HUDEvent.HideHUD: MsgInt msgI = msg as MsgInt; HideHUD(msgI.Int); break; case (ushort)HUDEvent.UpdateHUDPos: //更新HUD的位置 MsgKV <int, Vector3> msgPos = msg as MsgKV <int, Vector3>; if (hudDic.ContainsKey(msgPos.msgKey)) { UpdateHUDPos(msgPos.msgValue, hudDic[msgPos.msgKey]); } break; case (ushort)HUDEvent.UpdateHUDHp: //更新HUD的hp信息 MsgKV <int, float> msgHp = msg as MsgKV <int, float>; if (hudDic.ContainsKey(msgHp.msgKey)) { hudDic[msgHp.msgKey].UpdateHpBar(msgHp.msgValue); } break; } }
private void Update() { MsgInt msg = msgBase as MsgInt; }