layer_add_instance 함수 설명 및 활용 예제
layer_add_instance 함수는 특정 인스턴스를 현재 있는 레이어에서 다른 레이어로 이동시키는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 얻는) 또는 레이어 이름(문자열 형식 - 성능에 영향을 미침)과 이동할 인스턴스의 핸들을 인자로 받습니다.
예를 들어, 플레이어가 낮은 깊이의 레이어에 있을 때, 다른 레이어 뒤에 나타나게 하고 싶다면 이 함수를 사용하여 플레이어를 전경 레이어에서 배경 레이어로 이동시킬 수 있습니다. 이 함수는 새로운 인스턴스를 레이어에 추가하는 데 사용할 수 없으며, 이전에 인스턴스를 생성하고 그 참조를 변수에 저장해야 합니다. 또한, 이 함수는 현재 방의 범위 내에서만 유효하며, layer_set_target_room 함수를 사용하여 범위가 변경된 경우 사용할 수 없습니다.
문법
layer_add_instance(layer_id, instance_id)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| layer_id | String 또는 Layer | 이동할 인스턴스 레이어의 핸들 또는 레이어 이름(문자열) |
| instance_id | Object Instance | 대상 레이어로 이동할 인스턴스의 핸들 |
반환값
N/A
예제
var near = instance_nearest(x, y, obj_Tree);
var layer_id = layer_get_id("Instances Front");
layer_add_instance(layer_id, near);
위 코드는 주어진 x/y 위치에서 가장 가까운 인스턴스의 핸들을 가져와 로컬 변수에 저장합니다. 그런 다음 "Instances Front"라는 이름의 레이어 핸들을 가져와 찾은 인스턴스를 해당 레이어로 이동시킵니다.
활용 예제
- 플레이어 캐릭터 이동
gml var player_instance = instance_nearest(x, y, obj_Player); var background_layer = layer_get_id("Background Layer"); layer_add_instance(background_layer, player_instance); - 적 인스턴스 이동
gml var enemy_instance = instance_nearest(x, y, obj_Enemy); var enemy_layer = layer_get_id("Enemy Layer"); layer_add_instance(enemy_layer, enemy_instance); - 아이템 인스턴스 이동
gml var item_instance = instance_nearest(x, y, obj_Item); var item_layer = layer_get_id("Item Layer"); layer_add_instance(item_layer, item_instance); - 특정 조건에 따른 인스턴스 이동
gml if (health < 50) { var low_health_layer = layer_get_id("Low Health Layer"); layer_add_instance(low_health_layer, player_instance); } - 게임 오버 시 인스턴스 이동
gml if (game_over) { var game_over_layer = layer_get_id("Game Over Layer"); layer_add_instance(game_over_layer, player_instance); }
이와 같은 방식으로 layer_add_instance 함수를 활용하여 다양한 인스턴스를 레이어 간에 이동시킬 수 있습니다.