コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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);
        }