Плавное движение мяча (Unity) - PullRequest
0 голосов
/ 21 февраля 2020

Я занимаюсь разработкой простой трехмерной игры с мячом. И шар движется не плавно.

while (i < Input.touchCount)
        {
            if(Input.GetTouch(i).position.y < ScreenHeight / 2)
            {
                if (Input.GetTouch(i).position.x > ScreenWidth / 2)
                {
                    //move right
                    rigidBody.velocity += new Vector3(0.75f, 0, 0);

                }
                if (Input.GetTouch(i).position.x < ScreenWidth / 2)
                {
                    //move left
                    rigidBody.velocity -= new Vector3(0.75f, 0, 0);

                }
            }
            ++i;
        }

Как вы видите, я использовал скорость твердого тела, и она начинается медленно, а затем быстро. Но я хочу, чтобы мяч сразу же двигался с постоянной скоростью после касания экрана. Также он движется рывками, а не плавно. Не могли бы вы помочь мне улучшить его?

1 Ответ

0 голосов
/ 21 февраля 2020

Имейте в виду, что физические вычисления должны выполняться в методе события FixedUpdate():

From MonoBehaviour.FixedUpdate ()

Независимое от частоты кадров сообщение MonoBehaviour.FixedUpdate для физических расчетов.

MonoBehaviour.FixedUpdate имеет частоту системы физики; он называется каждым кадром с фиксированной частотой кадров. Вычислять физические расчеты системы после FixedUpdate. 0,02 секунды (50 вызовов в секунду) - это время по умолчанию между вызовами. Используйте Time.fixedDeltaTime для доступа к этому значению.

Ссылки:

Надеется, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...