当我什么都不按空格时,它不会“跳跃”,为什么?

问题描述 投票:0回答:0

它应该工作但它不

公共类 PlayerMovement:MonoBehaviour { 公共 CharacterController 控制器;

public float speed = 12f;
public float gravity = -9.81f;
public float jump = 1f;

public Transform groundCheck;
public float groundDistance = 0.4f;
public LayerMask groundMask;

Vector3 velocity;
bool isGrounded;

// Update is called once per frame
void Update()
{
    isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);

    if (isGrounded && velocity.y < 0)
    {
        velocity.y = -2f;
    }

    float x = Input.GetAxis("Horizontal");
    float z = Input.GetAxis("Vertical");

    Vector3 move = transform.right * x + transform.forward * z;

    controller.Move(move * speed * Time.deltaTime);

    if (Input.GetButtonDown("Jump") && isGrounded)
    {
        velocity.y = Mathf.Sqrt(jump * -2f * gravity);
    }

    velocity.y += gravity * Time.deltaTime;

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

}

我希望按空格键跳跃,但它不会这样做。

unity3d input gravity
© www.soinside.com 2019 - 2024. All rights reserved.