Может кто-нибудь объяснить, как мяч прошел вперед от камеры? - PullRequest
0 голосов
/ 27 мая 2019
private void Update()
{
    Ball.transform.position = PlayerCamera.transform.position + 
                              PlayerCamera.transform.forward * DistanceBall;
}

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Вы должны взглянуть на некоторые основные страницы API, такие как Update, Transform, Transform.position и Transform.forawrd.

Для самого вычисления также будет полезен оператор Vector3 * .

// This method is automatically called by Unity every frame
private void Update()
{
    Ball.transform.position = 
        // This is the PlayerCamera's position
        PlayerCamera.transform.position 
        // This is the PlayerCamera's forward vector with magnitude 1
        // so this would move the ball 1 Unity Unit in front of the camera
        + PlayerCamera.transform.forward 
        // This finally moves the desired distance in front of the camera instead of 1 Unit
        * DistanceBall;
}

transform.forward - это Vector3, которыйвсегда указывает на положительную локальную ось Z.Это локальный прямой вектор, но он возвращается в координатах Мирового пространства.


В общем, я бы всегда рекомендовал использовать LateUpdate вместо, если камера перемещается любым пользовательским вводом,Таким образом, вы можете обработать весь пользовательский ввод в Update и сделать перемещение шара довольно последним шагом перед рендерингом.


В общем, я бы рекомендовал пройти некоторые базовые учебные пособия по Unity, например, Update и FixedUpdate и Vector Maths , прежде чем касаться кода;)

0 голосов
/ 27 мая 2019

Это довольно неясный вопрос, но ....

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

Похоже, что вы устанавливаете положение мяча в положение камеры игрока, плюс величина, которую они продвинули вперед, умноженная на постоянное расстояние мяча.

Поэтому, когда вы продвигаетесь вперед, изменяется PlayerCamera.transform.forward, и таким образом вы добавляете или вычитаете из Ball.transform.position.

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