protected override void Run(Tank tank, C2B_TankFrameInfo message) { if (tank.Battle.StopGetPosInfo) { return; } TankFrameInfo tankFrameInfo = message.TankFrameInfo; //tank.Position = new Vector3(tankFrameInfo.PX,tankFrameInfo.PY,tankFrameInfo.PZ); //tank.Rotation = new Vector3(tankFrameInfo.RX,tankFrameInfo.RY,tankFrameInfo.RZ); tank.PX = tankFrameInfo.PX; tank.PY = tankFrameInfo.PY; tank.PZ = tankFrameInfo.PZ; tank.RX = tankFrameInfo.RX; tank.RY = tankFrameInfo.RY; tank.RZ = tankFrameInfo.RZ; tank.GunRX = tankFrameInfo.GunRX; tank.TurretRY = tankFrameInfo.TurretRY; // Console.WriteLine($"坦克id = {entity.Id}"); // Console.WriteLine($"坦克instanceId = {entity.InstanceId}"); // // Console.WriteLine($"消息中坦克id = {message.TankFrameInfo.TankId}"); // // Console.WriteLine($"坦克位置 = ({message.TankFrameInfo.PX},{message.TankFrameInfo.PY},{message.TankFrameInfo.PZ})"); }
protected override void Run(ETModel.Session session, B2C_TankReset message) { TankFrameInfo tankInfo = message.TankFrameInfo; Tank tank = ETModel.Game.Scene.GetComponent <TankComponent>().Get(tankInfo.TankId); tank.Position = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient, tankInfo.PZ * 1f / Tank.m_coefficient); tank.Reset(); }
protected override void Run(ETModel.Session session, B2C_CreateTanks message) { Log.Warning("收到消息 B2C_CreateTanks"); Log.Warning("进入战场,坦克数量=" + message.Tanks.Count); TankComponent tankComponent = ETModel.Game.Scene.GetComponent <TankComponent>(); // 第一次进入战场,先创建自己坦克(创建其他坦克时需要判断与自己坦克关系,所以先创建自己坦克) if (tankComponent.MyTank == null) { foreach (TankInfoFirstEnter firstInfo in message.Tanks) { TankFrameInfo tankInfo = firstInfo.TankFrameInfo; if (tankInfo.TankId == PlayerComponent.Instance.MyPlayer.TankId) { Vector3 pos = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient, tankInfo.PZ * 1f / Tank.m_coefficient); Vector3 rot = new Vector3(tankInfo.RX * 1f / Tank.m_coefficient, tankInfo.RY * 1f / Tank.m_coefficient, tankInfo.RZ * 1f / Tank.m_coefficient); Tank tank = TankFactory.Create(firstInfo, pos, rot); break; } } } foreach (TankInfoFirstEnter firstInfo in message.Tanks) { TankFrameInfo tankInfo = firstInfo.TankFrameInfo; if (tankComponent.Get(tankInfo.TankId) != null) { continue; } Vector3 pos = new Vector3(tankInfo.PX * 1f / Tank.m_coefficient, tankInfo.PY * 1f / Tank.m_coefficient, tankInfo.PZ * 1f / Tank.m_coefficient); Vector3 rot = new Vector3(tankInfo.RX * 1f / Tank.m_coefficient, tankInfo.RY * 1f / Tank.m_coefficient, tankInfo.RZ * 1f / Tank.m_coefficient); Tank tank = TankFactory.Create(firstInfo, pos, rot); } Game.EventSystem.Run(EventIdType.CreateTanksFinish); }
public override void Run() { B2C_CreateTanks createTanks = new B2C_CreateTanks(); Tank[] tanks = Game.Scene.GetComponent <TankComponent>().GetAll(); foreach (Tank t in tanks) { TankFrameInfo tankFrameInfo = new TankFrameInfo(); tankFrameInfo.TankId = t.Id; tankFrameInfo.PX = t.PX; tankFrameInfo.PY = t.PY; tankFrameInfo.PZ = t.PZ; tankFrameInfo.RX = t.RX; tankFrameInfo.RY = t.RY; tankFrameInfo.RZ = t.RZ; tankFrameInfo.TurretRY = t.TurretRY; tankFrameInfo.GunRX = t.GunRX; //createTanks.Tanks.Add(tankFrameInfo); } Log.Info("广播坦克"); }