Unity 3d основная камера LookAt не вращается по оси x - PullRequest
0 голосов
/ 05 февраля 2020

Я занимаюсь разработкой следующей целевой камеры, она работает нормально, но когда транспортное средство (Цель) находится на склоне, камера не вращается, чтобы показать полный автомобиль.

void LateUpdate()
    {

        if (car1.controlled && Camera.main != null)
        {
            float speedFactor = Mathf.Clamp01(target.root.GetComponent<Rigidbody>().velocity.magnitude / 20.0f);
            if (speedFactor < 0.01f)
                speedFactor = 0.01f;

            Camera.main.fieldOfView = Mathf.Lerp(40, 65, speedFactor);

            float currentDistance = Mathf.Lerp(13.5f, 8.5f, speedFactor);

            currentVelocity = currentVelocity.normalized;

            Vector3 newTargetPosition = target.position + Vector3.up * height;
            Vector3 newPosition = newTargetPosition - ((currentVelocity * currentDistance));
            newPosition.y = newTargetPosition.y;

            Vector3 targetDirection = newPosition - newTargetPosition;
            if (Physics.Raycast(newTargetPosition, targetDirection, out hit, currentDistance, raycastLayers))
                newPosition = hit.point;

            Camera.main.transform.position = newPosition;   
            Camera.main.transform.LookAt(newTargetPosition);    
        }

enter image description here

1 Ответ

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

LookAt установит поворот камеры так, чтобы она смотрела прямо на newTargetPosition. На самом деле он не двигает камеру вверх, он просто поворачивает ее, чтобы посмотреть на автомобиль. Вы должны изменить свой код так, чтобы камера двигалась вверх, когда транспортное средство спускается по склону, а затем заставляла его смотреть на транспортное средство.

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