protected override void Run(ETModel.Session session, M2C_InputResult_Move message) { Unit unit = ETModel.Game.Scene.GetComponent <UnitComponent>().Get(message.Id); if (message.PathList.Count == 0) { return; } List <Vector3> vector3s = new List <Vector3>(); foreach (var v in message.PathList) { vector3s.Add(v.ToV3()); } if (unit != ETModel.Game.Scene.GetComponent <UnitComponent>().MyUnit) { unit.GetComponent <CharacterMoveComponent>().MoveAsync(vector3s).Coroutine(); } else { UnitStateDelta unitStateDelta = new UnitStateDelta(); unitStateDelta.frame = message.Frame; CommandResult_Move commandResult_Move = CommandGCHelper.GetCommandResult <CommandResult_Move>(); commandResult_Move.Path = vector3s; unitStateDelta.commandResult = commandResult_Move; unit.GetComponent <CommandComponent>().GetCommandResult(unitStateDelta); } }
protected override void Run(Unit unit, C2M_Input_UseSkill_Dir message) { UnitStateComponent unitStateComponent = unit.GetComponent <UnitStateComponent>(); CommandInput_UseSkill commandInput_UseSkill = CommandGCHelper.GetCommandInput <CommandInput_UseSkill>(); commandInput_UseSkill.skillId = message.SkillId; commandInput_UseSkill.pipelineSignal = message.PipelineSignal; commandInput_UseSkill.bufferValue = new BufferValue_Dir() { dir = message.AimDir.ToV3() }; unitStateComponent.GetInput(message.Frame, commandInput_UseSkill); }