[Unity] UI 카메라 추적 방법 (UI Camera Tracking)
2024. 8. 28.

 

  • TransformPoint를 사용해 카메라의 목표 위치를 계산합니다.
    • 카메라에서 설정된 높이와 거리만큼 떨어진 위치를 계산.
    • 로컬 좌표를 월드좌표로 변환.

 

  • SmoothDamp를 사용해 현재 위치를 목표 위치로 부드럽게 이동시킵니다.
    • velocity는 이동 속도를 추적하고, smoothTime은 이동의 부드러움을 결정.

 

  • 카메라의 회전을 목표와 일치시킵니다.
    • 카메라가 목표와 동일한 방향을 바라보도록 설정.

 

public class TrackingCamera : MonoBehaviour
{
    private Camera cam;
    public float CameraDistance = 1.0F;
    public float height = 0.5f;
    public float smoothTime = 0.3F;
    private Vector3 velocity = Vector3.zero;

    private void Start()
    {
        cam = Camera.main;
    }

    private void Update()
    {
        Vector3 targetPosition = cam.transform.TransformPoint(new Vector3(0, height, CameraDistance));
        transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
        transform.rotation = cam.transform.rotation;
    }
}