목표
- LookAt을 사용하여, Target Object를 바라보는 방법에 대해 알아보자
GameObject의 Vector
- 물체는 기본적으로 up vector, right vector, forward vector를 가진다.
샘플 코드
- LookAtCamera 이라는 스크립트를 생성하고, 해당 스크립트를 Main Camera에 붙인다.
- 이때 바라볼 물체는 TargetObject이다. 바라볼 물체인 Sphere를 하나 생성하자.
- 정확한 카메라 위치를 표시하기 위해, 카메라는 Cube를 붙였다.
using UnityEngine;
public class LookAtCamera : MonoBehaviour
{
public GameObject TargetObject;
// Use this for initialization
void Start()
{
}
void FixedUpdate()
{
this.transform.LookAt(TargetObject.transform);
}
}
- 생성한 Sciprt의 targetObject에 Sphere를 넣어준다.
- 하이러키창의 Sphere를 드래그&드롭으로 이동시키거나, 스크립트 이름이 표시된 창에서 오른쪽 끝에 있는 작은 동그라미를 누르면 선택창이 나온다.
LookAt
-
설정한 transform을 바라본다.
-
이때 Pivot 설정이 Global이냐 Local이냐에 따라, 회전하는 물체의 Vector 표시에 차이가 발생한다.
-
Global : 물체가 회전해도, 물체의 up, right, forward를 표시하는 기지모가 월드로 고정된다.
-
Local : 물체의 회전에 따라, 물체의 up, right, forward 기지모가 회전한다.