public void Handle(Contexts contexts, PlayerEntity player, IUserCmd cmd) { Vector3 to = player.playerIntercept.MovePos; if (Vector3.Distance(player.position.Value, to) < 1) { player.playerIntercept.InterceptType = (int)PlayerActEnum.CmdType.Idle; return; } if (!PlayerInterceptUtil.IsFaceTo(player, to, cmd)) { return; } AutoMoveUtil.MoveType m = AutoMoveUtil.GetMoveType(player, to); switch (m) { case AutoMoveUtil.MoveType.Walk: cmd.MoveVertical = 1; break; case AutoMoveUtil.MoveType.Jump: cmd.MoveVertical = 1; cmd.IsJump = true; cmd.IsCrouch = true; break; default: break; } }
public bool Meet(IEventArgs args) { UnitPosition upf = from.Select(args); UnitPosition upt = to.Select(args); //long s = DateTime.Now.Ticks; bool can = false; for (int i = 0; i < 1; i++) { can = AutoMoveUtil.CanDirectMoveTo(upf.Vector3, upt.Vector3); } //Debug.LogFormat("can time: {0}", DateTime.Now.Ticks - s); return(can); }