함수: instance_deactivate_layer
이 함수는 특정 레이어에 할당된 모든 인스턴스를 비활성화합니다. 비활성화하려면 레이어 핸들을 제공해야 하는데, 이는 코드 에디터에 작성된 레이어 이름(문자열)이나 layer_create()로 반환된 실제 레이어 핸들을 사용할 수 있습니다. 이 함수는 인스턴스 레이어만 비활성화할 수 있습니다.
비활성화한 레이어에 객체 인스턴스가 'Persistent'로 표시되어 있다면, 방을 변경하기 전에 instance_activate_layer() 함수를 사용하여 레이어를 다시 활성화해야 합니다. 그렇지 않으면 해당 레이어의 지속적인 인스턴스는 유지되지 않고 폐기됩니다.
비활성화는 즉각적이지 않으며, 이 방법으로 비활성화된 인스턴스는 함수가 호출된 이벤트가 끝날 때까지 비활성 상태로 간주되지 않습니다.
구문
instance_deactivate_layer(layer);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
| layer | Layer 또는 String | 사용할 레이어 이름 문자열(또는 핸들) |
반환값
없음 (N/A)
예시
instance_deactivate_layer("Enemy Layer");
var _vx = camera_get_view_x(view_camera[0]);
var _vy = camera_get_view_y(view_camera[0]);
var _vw = camera_get_view_width(view_camera[0]);
var _vh = camera_get_view_height(view_camera[0]);
instance_activate_region(_vx - 64, _vy - 64, _vw + 128, _vh + 128, false);
위 코드는 "Enemy Layer"에 할당된 모든 인스턴스를 비활성화한 후 방 내의 특정 영역을 활성화합니다.
활용 및 응용 예제
예제 1: 적 인스턴스 비활성화
전투 중, 플레이어가 특정 레이어의 적을 비활성화하려고 할 때 사용할 수 있습니다.
// 적 인스턴스 비활성화
instance_deactivate_layer("Enemy Layer");
예제 2: 레이어 비활성화 후 보너스 아이템 활성화
적 인스턴스를 비활성화한 후, 플레이어에게 보너스 아이템을 제공하는 예제입니다.
instance_deactivate_layer("Enemy Layer");
// 보너스 아이템 생성
instance_create_layer(x, y, "Bonus Item Layer", obj_bonus);
예제 3: 레이어 다시 활성화
방을 변경하기 전에 Persistent 인스턴스를 간직하기 위해 레이어를 다시 활성화하는 방법입니다.
// 방을 변경하기 전에 레이어 활성화
instance_activate_layer("Enemy Layer");
room_goto_next();
이 예제들을 통해 instance_deactivate_layer 함수를 상황에 맞게 활용할 수 있습니다.