인스턴스 생성하기
이 문서에서는 Asset Browser에서 어떤 객체의 인스턴스를 생성하는 방법을 설명합니다. 객체의 이름과 생성할 방의 x/y 위치, 그리고 인스턴스를 생성할 레이어 이름을 지정합니다 (이 레이어는 인스턴스 레이어여야 합니다). "상대적" 플래그를 선택하면, 현재 인스턴스의 위치를 기준으로 인스턴스를 배치할 수 있습니다. 게임에서 인스턴스를 생성할 때마다 고유한 ID 값이 주어져 나중에 다른 작업에서 이 인스턴스를 식별할 수 있습니다. 이 작업은 ID 값을 저장할 "타겟" 변수를 정의할 수 있게 해줍니다 (아래 예제 참조). 타겟은 로컬 변수를 플래그로 표시할 수 있으며, 이 경우 이 작업을 위해 생성되며 이후 모든 작업에서 사용할 수 있습니다.
## 작업 문법
### 인수 설명
|인수|설명|
|---|---|
|Object|인스턴스를 생성할 객체의 이름|
|x|인스턴스를 생성할 방의 x 위치 (호출하는 인스턴스를 기준으로 할 수 있음)|
|y|인스턴스를 생성할 방의 y 위치 (호출하는 인스턴스를 기준으로 할 수 있음)|
|Layer|인스턴스를 생성할 인스턴스 레이어의 이름 (문자열)|
|Target|반환값을 위한 대상으로 사용할 변수|
## 예제
아래 코드 블록은 새로운 인스턴스를 생성하고, 그 고유 ID 값을 임시 변수에 저장합니다. 이 변수는 이후 `Apply To...` 작업에서 생성된 인스턴스의 속성을 설정하는 데 사용됩니다.
```gml
var myInstance = instance_create_layer(x, y, "Layer1", MyObject);
활용 및 응용 예제
- 다양한 인스턴스 생성: 객체 이름과 위치를 동적으로 결정하여 다양한 인스턴스를 생성할 수 있습니다.
gml var posX = random(room_width); var posY = random(room_height); var enemyInstance = instance_create_layer(posX, posY, "EnemyLayer", Enemy);
- 인스턴스 속성 설정: 생성한 인스턴스의 속성을 설정하여 다양하게 활용할 수 있습니다.
gml enemyInstance.health = 100; enemyInstance.speed = 5;
- 상대적 인스턴스 생성: 호출하는 인스턴스의 위치를 바탕으로 새로운 인스턴스를 생성할 수 있습니다.
gml var playerX = x + 50; // 플레이어의 X 위치에서 50만큼 떨어진 곳에 var playerY = y; var projectileInstance = instance_create_layer(playerX, playerY, "ProjectileLayer", Projectile);
이와 같은 방법으로 다양한 게임 로직을 구현할 수 있으며, 인스턴스를 유연하게 관리할 수 있습니다.
© 2023 YoYo Games Ltd. All Rights Reserved ```