layer_depth 함수 설명 및 활용 예제
함수 설명
layer_depth 함수는 주어진 레이어의 깊이를 변경하여 화면에 렌더링되는 순서를 조정하는 데 사용됩니다. 레이어 핸들(레이어를 생성할 때 layer_create를 사용하여 얻은 핸들) 또는 레이어 이름(문자열 형식)을 제공하고, 새로운 깊이 값을 정수로 설정합니다. 깊이는 -16000에서 16000 사이의 값을 가질 수 있습니다.
깊이의 정의
- 깊이가 높을수록 카메라에서 "더 멀리" 위치하고,
- 깊이가 낮을수록 카메라에 "더 가까이" 위치합니다.
예를 들어, 깊이가 -100, 0, 100인 세 개의 레이어가 있다면, 렌더링 순서는 100, 0, -100이 됩니다. 즉, -100 깊이를 가진 레이어가 가장 위에 그려지게 됩니다.
깊이 확인
layer_get_depth 함수를 사용하여 언제든지 레이어의 깊이를 확인할 수 있습니다. 깊이의 최소값과 최대값은 각각 -16000과 16000이며, 이 범위를 벗어난 깊이는 렌더링되지 않습니다. 만약 이 범위를 벗어난 깊이가 필요하다면 layer_force_draw_depth 함수를 사용해야 합니다.
주의사항
레이어의 깊이를 수정하면 해당 레이어에 적용되는 필터와 효과가 변경될 수 있습니다. FX 레이어의 깊이보다 낮은 깊이로 변경하면 해당 효과가 더 이상 적용되지 않습니다.
함수 구문
layer_depth(layer_id, depth)
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| layer_id | String or Layer | 깊이를 설정할 레이어의 핸들 또는 이름 |
| depth | Real | 레이어의 새로운 깊이 |
반환값
N/A
활용 예제
아래는 layer_depth 함수를 활용하는 몇 가지 예제입니다.
예제 1: 레이어 깊이 설정
if (layer_get_depth(layer) != -100) {
layer_depth(layer, -100);
}
이 코드는 현재 인스턴스가 있는 레이어의 깊이를 확인하고, 깊이가 -100이 아니면 -100으로 설정합니다.
예제 2: 레이어 깊이 변경
layer_depth("background_layer", 500);
이 코드는 "background_layer"라는 이름을 가진 레이어의 깊이를 500으로 설정합니다.
예제 3: 깊이 범위 확인
var current_depth = layer_get_depth(layer);
||
|---|
layer_force_draw_depth(layer, 0);
}
이 코드는 현재 레이어의 깊이를 확인하고, 깊이가 범위를 벗어나면 강제로 깊이를 0으로 설정합니다.
예제 4: 여러 레이어 깊이 조정
layer_depth(layer1, -200);
layer_depth(layer2, -100);
layer_depth(layer3, 0);
이 코드는 세 개의 레이어 깊이를 각각 -200, -100, 0으로 설정하여 렌더링 순서를 조정합니다.