M2C_StopHandler.cs 790 B

123456789101112131415161718192021222324252627
  1. using UnityEngine;
  2. namespace ET.Client
  3. {
  4. [MessageHandler(SceneType.Client)]
  5. public class M2C_StopHandler : AMHandler<M2C_Stop>
  6. {
  7. protected override async ETTask Run(Session session, M2C_Stop message)
  8. {
  9. Unit unit = session.DomainScene().CurrentScene().GetComponent<UnitComponent>().Get(message.Id);
  10. if (unit == null)
  11. {
  12. return;
  13. }
  14. Vector3 pos = new Vector3(message.X, message.Y, message.Z);
  15. Quaternion rotation = new Quaternion(message.A, message.B, message.C, message.W);
  16. MoveComponent moveComponent = unit.GetComponent<MoveComponent>();
  17. moveComponent.Stop();
  18. unit.Position = pos;
  19. unit.Rotation = rotation;
  20. unit.GetComponent<ObjectWait>()?.Notify(new WaitType.Wait_UnitStop() {Error = message.Error});
  21. await ETTask.CompletedTask;
  22. }
  23. }
  24. }