레이어 생성 함수 설명
layer_create 함수는 현재 방 내에서 새로운 레이어를 생성하는 데 사용됩니다. 이 함수는 생성할 레이어의 깊이(depth)를 입력받고, 이후 이 레이어에 접근할 수 있는 레이어 핸들을 반환합니다.
주요 기능
- 깊이(depth): 레이어의 깊이는 카메라와의 거리로 결정됩니다. 깊이가 낮을수록 카메라에 가까워지고, 깊이가 높을수록 멀어집니다. 예를 들어, 깊이가 -100, 0, 100인 세 개의 레이어가 있을 경우, 레이어는 100, 0, -100 순서로 그려집니다. 따라서 카메라에 가장 가까운 레이어는 깊이가 -100인 레이어입니다.
- 이름(name): 선택적으로 레이어에 특정 이름을 부여할 수 있습니다. 이름을 사용하면 핸들 대신 문자열로 레이어에 접근할 수 있지만, 성능에 더 큰 영향을 미칠 수 있습니다. 이름을 지정하지 않으면 레이어는 "_layer_XXX" 형식의 이름이 자동으로 부여됩니다.
- 깊이 범위: 레이어의 최소 깊이는 -16000, 최대 깊이는 16000입니다. 이 범위를 벗어난 깊이는 렌더링되지 않습니다. 필요한 경우
layer_force_draw_depth()함수를 사용해야 합니다.
함수 문법
layer_create(depth, [name])
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| depth | Real | 생성할 레이어의 깊이 |
| name | String | 선택적: 레이어에 부여할 이름 (문자열) |
반환값
- 레이어 핸들
예제 코드
global.Bullet_Layer = layer_create(-100);
위 코드는 깊이 값이 -100인 새로운 레이어를 생성하고, 그 핸들을 전역 변수에 할당합니다.
활용 예제
- 다양한 레이어 생성:
gml var backgroundLayer = layer_create(100, "Background"); var gameLayer = layer_create(0, "Game"); var uiLayer = layer_create(-100, "UI"); - 레이어 삭제:
gml layer_destroy(global.Bullet_Layer); - 특정 깊이에서 레이어 강제 그리기:
gml layer_force_draw_depth(global.Bullet_Layer, -150); - 레이어 이름으로 접근:
gml var layerHandle = layer_get("Game"); - 여러 레이어를 사용한 게임 구조:
gml var enemyLayer = layer_create(0, "Enemies"); var playerLayer = layer_create(-50, "Player"); var effectLayer = layer_create(-100, "Effects");
이와 같이 layer_create 함수를 활용하여 다양한 레이어를 생성하고 관리할 수 있습니다.