본문 바로가기

Unity 공부시작

유니티 :: 화면 부드럽게 움직이기 [ SmoothDamp() ] // SmoothFollow

main Camera가 특정 타겟을 계속해서 비추도록 하고 싶다면 가장 간단한 방법은 목표에 main camera를 하위 오브젝트로 넣는 것이다.


또한 main Camera에 스크립트를 추가하여 그 스크립트에서 main camera의 position 값을 따라다니려는 목표의 position 값을 넣어주면 된다.


하지만 위와 같은 방법들은 정확하게 목표가 움직인 만큼만 카메라가 움직인다.


만약 물체가 이동한 뒤에 카메라가 따라가는 등의 동적이고 부드러운 움직임을 구현하고 싶다면 다른 방법을 이용해야 한다.


* Vector3.SmoothDamp(Vector3 current, Vector3 target, ref Vector3 Velocity, float smoothTime, float maxSpeed, float deltaTime);


< maxSpeed와 deltaTime은 인자로 주지 않아도 사용 가능하다.


current : 현재 나의 위치


target : 따라갈 목표의 위치


Velocity : 현재 속도


smoothTime : 목표에게 도달하기 까지의 걸릴 시간


maxSpeed : 최대 속도


deltaTime : 마지막 작동을 위한 호출로부터의 시간



* SmoothFollow


이는 유니티에서 제공하는 스크립트를 사용하는 방법이다. [Asset] -> [Import Package] -> [Utility]를 선택해주면 된다. Utility에 있는


SmoothFollow.cs를 임포트하여 메인 카메라에 컴포넌트 추가를 해주면 된다.


Utility가 뜨지 않을 시, 에셋 스토어에 가서 Standard Assets를 검색하여 직접 Import 해주면 된다.