room_instance_clear 함수 설명
room_instance_clear 함수는 특정 방에서 모든 인스턴스를 제거하는 기능을 제공합니다. 이 함수를 호출하면 제거되는 인스턴스에 대해 파괴 이벤트가 호출되지 않습니다. 또한, Asset Browser에서 생성된 방 자산에 이 함수를 호출하면 방의 인스턴스가 영구적으로 제거되며, game_restart를 호출해도 원래 상태로 되돌릴 수 없습니다. 게임을 종료하고 다시 시작해야만 방이 원래 상태로 돌아옵니다.
문법
room_instance_clear(index);
인수
| 인수 | 유형 | 설명 |
|---|---|---|
| index | Room Asset | 모든 인스턴스를 제거할 방의 인덱스 |
반환값
N/A
예제
global.rm = room_add();
room_assign(rm_base, global.rm);
room_instance_clear(global.rm);
위 코드는 게임에 새로운 방을 추가하고, rm_base로 인덱스된 방의 내용을 새 방에 복사한 후, 새 방에서 모든 인스턴스를 제거합니다.
활용 예제
예제 1: 게임 시작 시 방 초기화
// 게임 시작 시 방을 초기화하는 코드
global.rm = room_add();
room_assign(rm_base, global.rm);
room_instance_clear(global.rm);
예제 2: 특정 조건에서 방 인스턴스 제거
// 특정 조건이 충족되면 방의 인스턴스를 제거하는 코드
if (player.health <= 0) {
room_instance_clear(global.rm);
}
예제 3: 새로운 레벨로 이동 시 인스턴스 클리어
// 새로운 레벨로 이동할 때 기존 인스턴스를 제거하는 코드
if (level_complete) {
room_instance_clear(global.rm);
room_goto(next_level);
}
예제 4: 게임 리셋 기능 구현
// 게임 리셋 시 방의 인스턴스를 제거하는 코드
if (reset_game) {
room_instance_clear(global.rm);
game_restart();
}
이와 같이 room_instance_clear 함수를 활용하여 게임의 다양한 상황에서 방의 인스턴스를 효과적으로 관리할 수 있습니다.