유니티에서 선형 보간(Linear Interpolation, Lerp)은 두 값 사이를 일정한 비율로 보간하는 기능을 의미해. 주로 움직임, 색상 변화, 애니메이션 등에 많이 사용됩니다.
1. Vector3.Lerp
Vector3.Lerp는 두 벡터 사이를 보간하는 함수입니다.
Vector3.Lerp(Vector3 a, Vector3 b, float t);
- a: 시작 위치
- b: 끝 위치
- t: 0과 1 사이의 값 (0이면 a, 1이면 b, 0.5면 중간값)
예제: 플레이어를 부드럽게 이동시키기
void Update()
{
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * speed);
}
- targetPosition으로 점진적으로 이동함.
- Time.deltaTime * speed를 곱하면 프레임 속도에 영향을 받지 않고 자연스럽게 이동 가능.
2. Mathf.Lerp
Mathf.Lerp는 두 숫자 값을 보간할 때 사용합니다.
Mathf.Lerp(float a, float b, float t);
- a: 시작 값
- b: 끝 값
- t: 보간 값 (0~1)
예제: 화면 밝기 조절
float brightness = Mathf.Lerp(0, 1, Time.time / duration);
Time.time / duration을 사용해 0에서 1까지 자연스럽게 변화함.
3. Color.Lerp
Color.Lerp는 색상 값을 보간할 때 사용합니다.
Color.Lerp(Color a, Color b, float t);
예제: 색상 변경 애니메이션
void Update()
{
renderer.material.color = Color.Lerp(Color.red, Color.blue, Mathf.PingPong(Time.time, 1));
}
Mathf.PingPong(Time.time, 1)을 사용해서 색상이 계속 전환되도록 함.
4. 선형 보간 응용 (부드러운 감속)
선형 보간은 Lerp만 사용하면 속도가 일정하지만, 부드럽게 감속하려면 Lerp 대신 SmoothDamp를 사용할 수도 있습니다.
Vector3 velocity = Vector3.zero;
transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, 0.3f);
SmoothDamp는 부드럽게 감속하며 목표 지점으로 이동함.
정리
- Vector3.Lerp: 위치 보간
- Mathf.Lerp: 숫자 보간
- Color.Lerp: 색상 보간
- 감속 효과를 원하면 SmoothDamp 활용
'부트캠프 > Unity [ 스파르타 ]' 카테고리의 다른 글
[ 스파르타 ][TIL] 유니티 스파르타 7기 21일차 - 탑다운 뷰 트러블 슈팅 (0) | 2025.02.19 |
---|---|
[ 스파르타 ][TIL] 유니티 스파르타 7기 20일차 - Factory 패턴 (0) | 2025.02.18 |
[ 스파르타 ][TIL] 유니티 스파르타 7기 18일차 - Command 패턴 (0) | 2025.02.14 |
[TIL] 유니티 스파르타 7기 17일차 - Thread와 lock 기능 (1) | 2025.02.13 |
[TIL] 유니티 스파르타 7기 16일차 - 탱크 움직임과 마우스 에임 (0) | 2025.02.12 |