인스턴스 존재 여부 확인하기
이 문서는 특정 객체의 인스턴스가 게임 룸에 존재하는지 확인하는 방법을 설명합니다. 또한, 특정 인스턴스가 존재하는지도 체크할 수 있습니다. Asset Browser에서 객체를 선택하고, 룸에 인스턴스가 존재하면 이 액션은 true를 반환하며, 존재하지 않으면 false를 반환합니다.
기본 개념
- 객체 이름: 체크할 객체의 이름 또는 인스턴스 ID입니다.
- 변수 사용: 이 액션에서는 변수로 특정 인스턴스의 고유 ID를 사용할 수 있습니다.
- 'Not' 플래그: "Not" 인자를 활성화하면 인스턴스가 없어야
true를 반환합니다. 하나라도 존재하면false를 반환합니다.
액션 구문
if (instance_exists(object_name)) {
// 인스턴스가 존재할 때 실행할 코드
} else {
// 인스턴스가 존재하지 않을 때 실행할 코드
}
활용 및 응용 예제
1. 충돌 체크 예제
다음 코드는 충돌을 체크하고 충돌한 인스턴스의 고유 ID 값을 반환하는 예제입니다.
if (place_meeting(x, y, object_enemy)) {
var collided_id = instance_place(x, y, object_enemy);
if (collided_id != noone) {
// 충돌한 인스턴스 설정
collided_id.some_variable = true;
}
}
2. 게임 시작 시 인스턴스 확인
게임 시작 시 특정 객체가 존재하는지 체크하는 코드입니다.
if (instance_exists(object_player)) {
// 플레이어 인스턴스가 이미 존재할 경우
show_message("플레이어가 이미 존재합니다.");
} else {
// 플레이어 인스턴스가 존재하지 않는 경우, 새로 생성
instance_create_layer(100, 100, "Instances", object_player);
}
3. "Not" 플래그를 활용한 체크
인스턴스가 존재하지 않을 때 실행할 코드입니다.
if (!instance_exists(object_powerup)) {
// 파워업 인스턴스가 없는 경우 생성
instance_create_layer(random(room_width), random(room_height), "Instances", object_powerup);
}
엑셀 형식의 인스턴스 체크 표
| 인스턴스 이름 | 존재 여부 체크 | 반환값 | 함수 |
|---|---|---|---|
| object_player | 예 | true | instance_exists() |
| object_enemy | 아니오 | false | instance_exists() |
| object_powerup | 예 | true | instance_exists() |
| object_boss | 아니오 | false | instance_exists() |
참고: 액션을 "if" 블록에 추가하려면 해당 액션을 블록 옆으로 드래그해야 합니다. "if" 블록이 true일 때만 추가된 액션이 실행되며, 다른 곳에 드래그된 액션은 "if" 블록 이후에 실행됩니다.
결론
이 문서에서 소개한 인스턴스 존재 여부 확인은 게임 개발에서 매우 유용합니다. 필요한 객체가 존재하는지 확인하고, 조건에 따라 코드를 실행할 수 있어 다양한 게임 로직을 구현하는 데 도움이 됩니다.
© Copyright YoYo Games Ltd. 2023 All Rights Reserved