인스턴스 ID 설명 및 활용 예제
개요
instance_id는 읽기 전용 변수로, 현재 방 내의 모든 활동 중인 인스턴스의 ID를 저장하는 배열입니다. 만약 인스턴스 비활성화 기능을 사용했다면, 비활성화된 인스턴스는 이 배열에 포함되지 않습니다. array_length를 이 변수에 사용할 수 없기 때문에, 방 내 인스턴스의 수를 얻으려면 instance_number(all)를 사용해야 합니다. 배열의 범위를 벗어난 인덱스에 접근하면 noone을 반환합니다.
문법
instance_id[index]
반환 값
Object Instance: 인스턴스의 ID
예시 코드
for (var i = 0; i < instance_count; i++) {
with (instance_id[i]) speed += 0.1;
}
위 코드는 방 내 모든 인스턴스를 반복하면서 각 인스턴스의 속도에 0.1을 추가합니다.
다양한 활용 예제
| 예제 설명 | 코드 |
|---|---|
| 모든 인스턴스를 순회하며 위치를 설정 | gml for (var i = 0; i < instance_count; i++) { with (instance_id[i]) { x += 5; y += 5; } } |
| 인스턴스를 찾아 특정 조건을 만족하는 경우 작업 수행 | gml for (var i = 0; i < instance_count; i++) { with (instance_id[i]) { if (health < 50) { speed -= 0.5; } } } |
| 특정 객체의 인스턴스만 수정하기 | gml for (var i = 0; i < instance_count; i++) { if (instance_id[i] != noone && instance_id[i].object_index == obj_enemy) { with (instance_id[i]) { speed += 1; } } } |
결론
instance_id는 게임의 여러 인스턴스를 관리하고 수정하는 데 매우 유용한 도구입니다. 위 예시를 통해 다양한 활용 방법을 익힐 수 있습니다. 이를 통해 게임의 동작을 더욱 풍부하게 만들 수 있습니다.