示例#1
0
    public override void Move(CharacterController controller)
    {
        switch (Axis)
        {
        case MoveAxis.X:
            PositionDirection.Set(speed, 0, 0);
            break;

        case MoveAxis.Y:
            PositionDirection.Set(0, speed, 0);
            break;

        case MoveAxis.Z:
            PositionDirection.Set(0, 0, speed);
            break;
        }
        controller.Move(PositionDirection * Time.deltaTime);
    }
    public override void Move(CharacterController controller)
    {
        PositionDirection.Set(0, 0, speed * Input.GetAxis(vAxis));
        rotateDirection.y = rotateSpeed * Input.GetAxis(hAxis);
        controller.transform.Rotate(rotateDirection);
        PositionDirection = controller.transform.TransformDirection(PositionDirection);

        if (controller.isGrounded)
        {
            PositionDirection.y = 0;
            jumpCount           = 0;
        }

        if (jumpCount < jumpCountMax && Input.GetButtonDown("Jump"))
        {
            PositionDirection.y = jumpForce;
            jumpCount++;
        }

        PositionDirection.y -= gravity;


        controller.Move(PositionDirection * Time.deltaTime);
    }