layer_enable_fx 함수 설명
layer_enable_fx 함수는 특정 Room Layer에 할당된 필터 또는 효과를 활성화하거나 비활성화하는 기능을 제공합니다. 수정하고자 하는 레이어의 ID 또는 이름을 지정하고, 효과를 활성화(true) 또는 비활성화(false)할지를 나타내는 불리언 값을 전달합니다.
비활성화(false)를 전달하면 레이어에서 효과가 제거되지 않고 단순히 보이지 않게 됩니다. 효과를 레이어에서 제거하려면 layer_clear_fx() 함수를 사용해야 합니다. 반대로, 활성화(true)를 전달할 경우 해당 레이어에 적용된 효과가 없으면 아무런 동작도 하지 않습니다. 효과를 레이어에 적용하려면 layer_set_fx() 함수를 사용해야 합니다.
문법
layer_enable_fx(layer_name_or_id, enable);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| layer_name_or_id | String 또는 Layer ID | 수정할 레이어의 이름 또는 ID |
| enable | Boolean | FX를 활성화(true) 또는 비활성화(false)할지 여부 |
반환 값
- N/A
활용 예제
if (hp <= 3) {
layer_enable_fx("DesaturateLayer", true);
} else {
layer_enable_fx("DesaturateLayer", false);
}
위의 코드는 인스턴스의 HP 값이 3 이하일 경우 "DesaturateLayer" 효과 레이어를 활성화하고, 그렇지 않으면 비활성화합니다. 이는 플레이어에게 HP가 낮다는 것을 화면을 탈색시켜 알려줍니다.
추가 활용 예제
- 게임 오버 시 효과 활성화
gml if (game_over) { layer_enable_fx("GameOverLayer", true); } - 특정 이벤트 발생 시 효과 비활성화
gml if (event_triggered) { layer_enable_fx("EventLayer", false); } - 레벨 업 시 효과 적용
gml if (level_up) { layer_enable_fx("LevelUpLayer", true); } - 시간 경과에 따른 효과 조정
gml if (time_passed > 60) { layer_enable_fx("TimeEffectLayer", true); } else { layer_enable_fx("TimeEffectLayer", false); } - 적 HP에 따라 효과 조정
gml if (enemy_hp < 10) { layer_enable_fx("EnemyWeakLayer", true); } else { layer_enable_fx("EnemyWeakLayer", false); }