경로를 따라 위치 가져오기
이 문서는 인스턴스가 경로를 따라 어느 위치에 있는지를 반환하는 방법에 대해 설명합니다. 반환되는 값은 0부터 1까지의 범위로 정규화되어 있으며, 예를 들어 결과가 0.5인 경우 이는 인스턴스가 경로의 중간에 위치하고 있음을 의미합니다. 이 동작을 사용하기 위해서는 먼저 Start Following Path 동작을 호출하여 인스턴스에 경로를 지정해야 합니다. 이 동작이 0이 아닌 값을 반환하려면 반드시 경로가 지정되어 있어야 합니다. 반환된 값은 사용자가 지정한 타겟 변수에 저장됩니다. 혹은 변수를 임시 로컬 변수로 플래그하여 생성하고 값을 할당할 수도 있습니다.
동작 문법
인수
| 인수 | 설명 |
|---|---|
| Target | 반환된 경로 위치를 저장할 대상 변수 |
예제
위의 동작 코드는 인스턴스가 할당된 경로에서 현재 위치를 가져오고, 해당 위치가 0.5보다 작을 경우 0.5로 설정합니다.
// 현재 경로 위치를 가져오기
var currentPosition = GetPositionAlongPath(targetVariable);
// 위치가 0.5보다 작으면 0.5로 설정
if (currentPosition < 0.5) {
targetVariable = 0.5;
}
활용 및 응용 예제
- 게임 캐릭터 이동: 캐릭터가 일정 경로를 따라 이동하도록 설정할 수 있으며, 특정 위치에 도달했을 때 이벤트를 발생시킬 수 있습니다.
gml // 캐릭터가 경로를 따라 일정 비율로 이동 if (GetPositionAlongPath(targetVariable) < 0.75) { // 캐릭터가 경로 75% 지점에 도달하기 전까지 이동 move_character(); } - 애니메이션 변경: 인스턴스의 위치에 따라 애니메이션을 변경할 수 있습니다.
gml // 위치에 따라 애니메이션 변경 var position = GetPositionAlongPath(targetVariable); if (position < 0.3) { sprite_index = spr_Anim1; // 애니메이션 1 } else if (position < 0.7) { sprite_index = spr_Anim2; // 애니메이션 2 } else { sprite_index = spr_Anim3; // 애니메이션 3 } - 이벤트 트리거: 특정 위치에 도달했을 때 이벤트를 트리거하여 추가적인 게임 로직을 실행할 수 있습니다.
gml // 특정 위치에 도달했을 때 이벤트 발생 if (GetPositionAlongPath(targetVariable) >= 1) { triggerEvent(); // 마지막 지점에 도달 시 이벤트 실행 }
참고 사항
- 사용하기 전 반드시 경로가 지정되었는지 확인해야 합니다.
- 경로 위치는 0부터 시작하여 1로 끝나며, 0은 경로의 시작, 1은 경로의 끝을 의미합니다.