Как я могу добавить и изменить переменную скорости? - PullRequest
0 голосов
/ 31 января 2019

Я новичок.

Я пытаюсь переместить куб в единство с MovePosition, он работает просто отлично, но проблема в том, что я не могу изменить скорость куба.

Я создал публичный float для скорости и добавил его в вектор3

Vector3 movement = new Vector3(h, 0, v).normalized * speed * Time.deltaTime;

Но, похоже, он просто не работает.

Я также попытался поместить его вMovePosition, но ничего не работает.

public class Movement : MonoBehaviour {

    public float speed = 55;
    private Rigidbody rb;


    public void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    public void FixedUpdate()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");

        Vector3 movement = new Vector3(h, 0, v).normalized * speed * Time.deltaTime;


        rb.MovePosition(transform.position + movement);
    }
}

Сколько бы я ни изменял скорость, это не сработает.

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Измените эти две строки:

Vector3 movement = new Vector3(h, 0, v).normalized * speed * Time.deltaTime;
rb.MovePosition(transform.position + movement);

На эти:

Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce (movement * speed);

Посмотрите, поможет ли это)

0 голосов
/ 31 января 2019

Переписать вашу функцию FixedUpdate следующим образом:

public void FixedUpdate()
{
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(h, 0, v).normalized;

    rb.velocity = movement * speed;
}

Кроме того, НЕ умножайте ваши операции с твердым телом на deltaTime или fixedDeltaTime;они уже не зависят от частоты кадров, и это может привести к странным результатам.Достаточно просто вызвать их в FixedUpdate.

0 голосов
/ 31 января 2019

Вы используете Time.deltaTime вместо Time.fixedDeltaTime внутри секции FixedUpdate.

Vector3 movement = new Vector3(h, 0, v).normalized * speed * Time.fixedDeltaTime;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...