티스토리 뷰
728x90
반응형
유니티를 사용하면서 오브젝트를 특정 목표 지점으로 이동시키고자 할 때에는 여러 가지 방법이 있습니다. 가장 많이 사용되는 방법으로는 Lerp, Slerp, MoveTowards와 SmoothDamp가 있습니다. 이번 글에서는 각 방법의 사용법과 활용 예제를 살펴보겠습니다.
1. MoveTowards
`MoveTowards`는 오브젝트를 직선으로 목표 지점까지 일정한 속도로 이동시킵니다.
using UnityEngine;
public class MoveTowardsExample : MonoBehaviour
{
public Transform target;
public float speed = 2.0f;
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
}
위 코드에서 오브젝트는 `target` 위치로 초당 `speed` 유닛의 속도로 이동합니다.
2. Lerp
`Lerp`는 두 점 사이를 선형 보간을 통해 이동합니다. 시간에 따라 비율이 조정되므로 부드러운 이동을 연출할 수 있습니다.
using UnityEngine;
public class LerpExample : MonoBehaviour
{
public Transform target;
public float speed = 0.1f;
void Update()
{
transform.position = Vector3.Lerp(transform.position, target.position, speed * Time.deltaTime);
}
}
이 코드는 현재 위치에서 `target` 위치로 부드럽게 이동합니다.
3. Slerp
`Slerp`는 선형 보간이 아닌 구면 선형 보간을 통해 두 점 사이를 호로 이동합니다.
using UnityEngine;
public class SlerpExample : MonoBehaviour
{
public Transform target;
public float speed = 0.1f;
void Update()
{
transform.position = Vector3.Slerp(transform.position, target.position, speed * Time.deltaTime);
}
}
이 코드는 두 오브젝트 사이를 호를 그리며 이동합니다.
4. SmoothDamp
`SmoothDamp`는 목표 지점까지 이동하며 부드러운 감속 효과를 줄 수 있습니다.
using UnityEngine;
public class SmoothDampExample : MonoBehaviour
{
public Transform target;
public float smoothTime = 0.3f;
private Vector3 velocity = Vector3.zero;
void Update()
{
transform.position = Vector3.SmoothDamp(transform.position, target.position, ref velocity, smoothTime);
}
}
이 코드는 목표 지점에 도달할 때까지 감속하며 이동합니다. `ref velocity`는 내부적으로 속도 참조를 유지합니다.
이러한 다양한 방법들을 활용하여 유니티에서 오브젝트를 목표 지점으로 다양하게 이동시킬 수 있습니다.
728x90
반응형
LIST
'Unity > C# 개발 노트' 카테고리의 다른 글
유니티에서 C# 이벤트와 델리게이트 개념 이해하기 (0) | 2025.03.22 |
---|---|
Unity에서 List 기능 사용법 정리 (0) | 2025.03.22 |
유니티에서 소켓 통신 구현하기: TCP 서버와 클라이언트 예제 (0) | 2025.03.21 |
Unity에서 Elevenlabs API를 활용하여 AudioClip으로 변환하기 (0) | 2025.03.21 |
유니티 포물선이동 예제 (2) | 2023.08.04 |
글 보관함
최근에 올라온 글
160x600