Unity 혹은 그외에 다른 엔진에서 LerpAngle() 함수가 있다. 이 함수는 선형보간함수인 Lerp() 함수에 각도 A에서 각도 B로 회전을 할 경우, [0, π] 범위내의 회전각으로 각도 B에 도달할 수 있는 기능이 추가된 함수이다.

이 함수는 2D나 3D에서 매우 자주 쓰인다(예:캐릭터의 회전). 하지만 아쉽게도 Godot Engine(3.0.4 기준)에서는 lerp() 함수는 지원하지만 Unity의 LearAngle() 같은 함수는 아직 지원하지 않는다.

func lerp_angle(from_angle, to_angle, weight_value):
	if abs(from_angle - to_angle) >= PI: 
		if from_angle > to_angle:
			to_angle += 2 * PI
		else:
			from_angle += 2 * PI
	return lerp(from_angle, to_angle, weight_value)

<참고>
https://godotengine.org/qa/28776/rotate-kinematicbody2d-based-mouse-position-varying-rate

+ Recent posts