개념
Lerp는 Liner InterPolation(선형 보간법)의 줄임말이다.
여기서 선형 보간법이란,두 끝점의 값이 주어졌을 때, 그 사이에 위치한 값을 추정하기 위하여거리에 따라 선형적으로 계산하는 방식이다.
말이 좀 어려운데 쉽게 비유를 들자면,
자동차가 A지점에서 B지점으로 이동하는데,A지점에서는 시속 20km로 B지점에서는 80km로 주행했다.그러면 A와 B 중간 지점에서는 몇 키로로 달렸을지 구하려고 한다.당연히 아무도 정확히 알 수 없다.하지만, 주어진 값 끼리 선을 그어, 가장 자연스러운 값을 구할 수 있다.
이렇게 되면, 자동차가 A 지점에서 B 지점까지 이동할 때,
세상에서 가장 부드럽게 속도를 올렸을 때,
중간지점의 속도를 구할 수 있다.
유니티 예제
기본 사용법
OOO.Lerp(a, b, t);
a 는 시작점, b 는 도착점이다. t는 시작점과 도착점을 기준으로 t 시간때의 지점을 의미한다. 꼭 시간이 아니라, 수학적 계산을 하면 된다. t = 0.5 라면 a, b 의 중간지점. t = 2 라면, a에서 b로 이동한 거리 만큼 한 번 더 이동한 지점을 의미한다.
유니티 예제
using UnityEngine;
public class MoveObject : MonoBehaviour
{
public Transform startPoint; // 시작 위치
public Transform endPoint; // 목표 위치
public float speed = 2.0f; // 이동 속도
private float t = 0f;
void Update()
{
t += Time.deltaTime * speed; // 시간에 따라 t 증가 (0 → 1)
transform.position = Vector3.Lerp(startPoint.position, endPoint.position, t);
}
}
위 예제를 보면,
t는 시간에 따라 증가함을 알 수 있다.
때문에 transform.position 은 시간에 따라, startPoint.position에서 endPoint.position으로 이동한다.
'유니티' 카테고리의 다른 글
[유니티] Canvas에 캐릭터 걷는 애니메이션 넣기 (0) | 2025.02.25 |
---|---|
[유니티] 스크립트 만들 때, Camera 라는 이름으로 만들지 말기 (0) | 2025.02.24 |
[유니티] position값들 끼리 차이 구할 때 (0) | 2025.02.18 |
[유니티] protected 개념 및 사용 이유 (0) | 2025.02.17 |
[유니티] Math.Clamp 사용법 (0) | 2025.02.14 |