layer_get_depth 함수 설명
layer_get_depth 함수는 특정 레이어와 관련된 깊이 값을 가져오는 데 사용됩니다. 이 함수는 레이어 핸들(레이어를 생성할 때 layer_create를 사용하여 얻은) 또는 레이어 이름(문자열 형식)을 인수로 받아 해당 레이어의 깊이를 실수로 반환합니다.
깊이 개념
- 깊이는 카메라로부터의 거리로 정의됩니다.
- 깊이가 높을수록 카메라에서 "더 멀리" 위치하고, 깊이가 낮을수록 "더 가까이" 위치합니다.
- 예를 들어, 깊이가 -100, 0, 100인 세 개의 레이어가 있을 경우, 레이어는 100, 0, -100 순서로 그려집니다. 즉, 가장 "위"에 있는 레이어(카메라 뷰에 가장 가까운 레이어)는 -100 깊이를 가진 레이어입니다.
함수 문법
layer_get_depth(layer_id)
인수 설명
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| layer_id | String 또는 Layer | 깊이를 가져올 레이어의 핸들 또는 레이어 이름(문자열) |
반환 값
- 실수형 값 (Real)
예제 코드
다음 코드는 글로벌 변수에 저장된 레이어 핸들의 깊이를 확인하고, 깊이가 -100이 아닐 경우 레이어를 파괴하고 -100 깊이로 다시 생성합니다.
if (layer_get_depth(global.temp_layer) != -100) {
layer_destroy(global.temp_layer);
global.temp_layer = layer_create(-100);
}
활용 예제
- 게임에서 배경 레이어 관리하기
gml if (layer_get_depth(background_layer) != -200) { layer_destroy(background_layer); background_layer = layer_create(-200); } - UI 요소의 깊이 조정하기
gml if (layer_get_depth(ui_layer) != 50) { layer_destroy(ui_layer); ui_layer = layer_create(50); } - 적 캐릭터의 깊이 설정하기
gml if (layer_get_depth(enemy_layer) != 0) { layer_destroy(enemy_layer); enemy_layer = layer_create(0); } - 파티클 효과의 깊이 조정하기
gml if (layer_get_depth(particle_layer) != -150) { layer_destroy(particle_layer); particle_layer = layer_create(-150); } - 게임 오버 화면 레이어 설정하기
gml if (layer_get_depth(game_over_layer) != 100) { layer_destroy(game_over_layer); game_over_layer = layer_create(100); }
이와 같이 layer_get_depth 함수를 활용하여 레이어의 깊이를 동적으로 관리할 수 있습니다.