/// <summary> /// 调用对应的位置同步 /// </summary> /// <param name="msgPosSync"></param> private void PosSync(MsgPosSync msgPosSync) { int intanceId = msgPosSync.instanceId; GameObject entity = MgrCenter.EntityMgr.GetItem(intanceId); if (entity != null) { PosSyncDriver posSyncDriver = entity.GetComponent <PosSyncDriver>(); if (posSyncDriver != null) { posSyncDriver.PosSync(msgPosSync.pos, msgPosSync.dir, msgPosSync.timeStamp); } } }
/// <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; } }