Layer 변수 사용 설명서
layer 변수는 게임룸 내의 모든 인스턴스에 대해 생성되는 내장 변수입니다. 이 변수는 인스턴스가 속한 층의 핸들을 포함하고 있습니다. 이 값은 layer_get_depth()와 같은 다른 함수에서 사용하거나, 인스턴스를 다른 층으로 이동시키기 위해 변경할 수 있습니다. 하지만 지정한 층이 현재 룸에 존재하지 않으면 오류가 발생하여 게임이 종료될 수 있으므로 주의해야 합니다.
층을 할당할 때는 다음 두 가지 방법 중 하나로 고유한 층 핸들을 제공해야 합니다: 1. layer_get_id() 함수를 사용할 때 (이름 있는 룸 층 사용 시) 2. layer_create() 함수를 사용할 때 (실행 시간에 자신의 층을 생성할 때)
중요: 만약 인스턴스를 instance_create_depth() 함수로 생성했거나 depth 변수를 수동으로 변경했다면, 해당 인스턴스에 할당된 층은 "관리되는" 층이 됩니다. 이는 GameMaker에서 자동으로 제어하고 관리하는 층입니다. 이런 경우 layer 변수는 -1을 반환합니다.
문법
layer;
반환값
- 층 (Layer)
예제
layer = layer_create(-1000);
위의 코드는 깊이가 -1000인 새 층을 생성하고, 인스턴스의 layer 변수를 반환된 층 핸들로 설정하여 인스턴스를 현재 위치한 층에서 새로 생성된 층으로 이동시킵니다.
다양한 활용 및 응용 예제
| 코드 예제 | 설명 |
|---|---|
| ```gml | |
| layer = layer_create(0); | |
| instance_create_layer(100, 200, obj_example, layer); | |
| ``` | layer_create() 함수로 깊이가 0인 새 층을 만들고, 해당 층에 obj_example 오브젝트를 생성합니다. |
| ```gml | |
| layer_id = layer_get_id("Background"); | |
| layer_set_depth(layer_id, -500); | |
| ``` | "Background"라는 이름의 층을 가져와서 그 층의 깊이를 -500으로 변경합니다. |
| ```gml | |
| if (layer != -1) { | |
| layer = layer_create(-200); | |
| } | |
| ``` | layer 변수가 -1이 아닐 경우, 깊이가 -200인 층을 생성합니다. |
마무리
이 문서에서는 layer 변수를 활용하는 방법과 그에 관련된 중요 사항들을 설명했습니다. 게임 개발 시 인스턴스를 층에 맞게 효율적으로 관리하는 데 큰 도움이 될 것입니다.