Плавающая проблема с жестким телом. Скорость в единстве - PullRequest
0 голосов
/ 03 ноября 2019

Ниже приведен код, который я использую для перемещения объекта в Unity. Строка rb.Velocity заставляет мой объект перемещаться в режиме Gameplay. Если я закомментирую строку, то объект падает просто отлично.

Может кто-нибудь объяснить, что здесь происходит?

public class PlayerController : MonoBehaviour
{

    public float forwardVelocity = 0F;
    public float maxSpeed = 180;
    public float acceleratePerSecond = 8.0F;
    public float rotateSpeed = 3.0F;
    private float yaw = 0.0f;
    private float pitch = 0.0f;
    protected Rigidbody rb;
    float timeZeroToMax = 2.5F;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        acceleratePerSecond = maxSpeed / timeZeroToMax;
        forwardVelocity = 0F;

    }

    // Update is called once per frame
    void Update()
    {

            if (Input.GetKey(KeyCode.UpArrow)) //Accelerate The Vehicle
            {
                if (forwardVelocity< maxSpeed)
                {
                forwardVelocity += acceleratePerSecond * Time.deltaTime;

                }

            }


        forwardVelocity = Mathf.Min(forwardVelocity, maxSpeed);


        rb.velocity = transform.forward * forwardVelocity;


        transform.Rotate(0, Input.GetAxis("Mouse X") * rotateSpeed, 0);


        yaw += rotateSpeed * Input.GetAxis("Mouse X");


        transform.eulerAngles = new Vector3(pitch, yaw, 0.0f);
    }

}

1 Ответ

0 голосов
/ 03 ноября 2019

transform.forward - это Vector3(0,0,1), вот в чем проблема.

Вы устанавливаете свою скорость y на 0.

...