자산 태그 확인 함수 (asset_has_tags)
이 문서는 asset_has_tags 함수에 대해 설명합니다. 이 함수는 특정 자산에 하나 이상의 태그 문자열이 할당되어 있는지를 확인합니다. 다음은 이 함수의 사용법과 적용 예제를 정리한 내용입니다.
함수 개요
asset_has_tags 함수는 주어진 자산에 대해 모든 태그가 존재하는지를 검사합니다. 자산 이름(문자열) 또는 자산 인덱스를 통해 자산을 지정할 수 있으며, 확인할 태그는 단일 문자열 또는 문자열 배열로 지정할 수 있습니다. 자산 핸들을 제공하는 경우, 필수적으로 자산 유형 인수(상수)를 함께 제공해야 합니다. 자산 유형에 따라 같은 인덱스를 가질 수 있지만, 같은 이름을 가질 수는 없습니다.
자산 유형 목록
| 자산 유형 상수 | 설명 |
|---|---|
asset_object |
객체 자산 |
asset_sprite |
스프라이트 자산 |
asset_sound |
사운드 자산 |
asset_background |
배경 자산 |
함수 문법
asset_has_tags(name_or_index, tags, [asset_type]);
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| name_or_index | String 또는 Asset | 자산의 이름(문자열) 또는 자산 핸들입니다. |
| tags | String 또는 String 배열 | 단일 자산 태그 문자열 또는 다양한 자산 태그를 포함하는 배열입니다. |
| [asset_type] | 자산 유형 상수 | 태그를 확인할 자산의 유형입니다. 핸들을 제공할 때만 사용합니다. |
반환값
- Boolean: 모든 태그가 자산에 존재하면
true, 그렇지 않으면false를 반환합니다.
예제 코드
아래 코드는 태그 배열을 생성하고, 모든 태그가 주어진 객체에 적용되어 있는지 확인한 후, 적용되어 있으면 다른 객체의 인스턴스를 생성합니다.
var _a = array_create(3);
_a[0] = "enemy";
_a[1] = "level_" + string(global.Level);
_a[2] = "boss";
if (asset_has_tags(object_index, _a, asset_object)) {
instance_create_layer(0, 0, "Overlay", obj_Boss_Text);
}
활용 및 응용 예제
1. 기본적인 사용
객체와 관련된 모든 태그를 확인하고 처리하는 기본적인 예입니다.
if (asset_has_tags("player", ["enemy", "attacker"])) {
// 적 플레이어에 대한 특정 행동 수행
}
2. 다른 자산 유형과 함께 사용
자산 핸들을 사용해 여러 다른 자산 유형에서 태그를 확인하는 방법입니다.
var obj_index = get_object_index("my_object");
if (asset_has_tags(obj_index, ["damageable", "interactive"], asset_object)) {
// 객체가 피해를 받을 수 있는지 체크
}
3. 사용자 정의 태그 사용
사용자 정의 태그를 사용하여 특정 기능을 활성화하는 예제입니다.
var custom_tags = ["unique_enemy", "boss"];
if (asset_has_tags("unique_enemy_sprite", custom_tags, asset_sprite)) {
// 유니크 적 스프라이트에 대해 특별한 기능 활성화
}
이처럼 asset_has_tags 함수는 게임 개발에서 자산의 태그를 효율적으로 관리하고 체크하는 데 유용합니다. 다양한 상황에서 이를 활용해 보세요.