Поворот камеры с помощью Player Unity 3D - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть шар, который движется вперед, отскакивает и вращается, и я хочу, чтобы камера следовала за ним и вращалась вместе с ним, чтобы камера всегда смотрела на мяч сзади.Поэтому я сделал сценарий ниже, но камера не смотрела на шар при вращении!

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

Сценарий камеры:

public Transform Ball;
private Vector3 Offset;

// Use this for initialization
void Start () {

    Offset = transform.position - Ball.transform.position;

}

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

    transform.position = new Vector3(Ball.transform.position.x + Offset.x, transform.position.y, Ball.transform.position.z + Offset.z);
    transform.rotation = Ball.transform.rotation;
}

1 Ответ

0 голосов
/ 22 декабря 2018
 [SerializeField]
 private Transform target;

 [SerializeField]
 private Vector3 offsetPosition;

 [SerializeField]
 private Space offsetPositionSpace = Space.Self;

 [SerializeField]
 private bool lookAt = true;

 private void Update()
 {
     Refresh();
 }

 public void Refresh()
 {
     if(target == null)
     {
         Debug.LogWarning("Missing target ref !", this);

         return;
     }

     // compute position
     if(offsetPositionSpace == Space.Self)
     {
         transform.position = target.TransformPoint(offsetPosition);
     }
     else
     {
         transform.position = target.position + offsetPosition;
     }

     // compute rotation
     if(lookAt)
     {
         transform.LookAt(target);
     }
     else
     {
         transform.rotation = target.rotation;
     }
 }

Цель вашего игрока - игровой объект

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