- 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;
}
}
'Unity' 카테고리의 다른 글
[Unity] TextMeshPro 활용해 Text안에 Icon 넣기 (0) | 2024.09.02 |
---|---|
[Unity] 생명주기 (0) | 2024.08.29 |
[Unity] Auto Scrolling Text 기능 (Feat. DOTween) (0) | 2024.08.26 |
[Unity] 벡터(Vector) 개념 (0) | 2024.08.23 |
[Unity] 피봇(Pivot) & 앵커(Anchor) (0) | 2024.08.21 |