asset_has_any_tag 함수 설명 및 활용 예제
asset_has_any_tag 함수는 자산 브라우저에서 자산에 하나 이상의 태그 문자열이 할당되었는지를 확인하는 기능을 제공합니다. 이 함수는 자산 이름(문자열) 또는 자산 인덱스를 입력으로 받고, 하나의 태그 문자열 또는 여러 태그 문자열이 포함된 배열을 함께 받을 수 있습니다.
만약 자산 핸들을 제공한다면, 선택적으로 자산 유형 인수를 입력해야 합니다. 이는 서로 다른 유형의 자산이 동일한 인덱스를 가질 수 있지만, 이름은 중복될 수 없기 때문입니다. 사용 가능한 자산 유형은 아래 표에 나열되어 있습니다.
| 자산 유형 | 설명 |
|---|---|
asset_object |
오브젝트 유형 자산 |
asset_sprite |
스프라이트 유형 자산 |
asset_sound |
사운드 유형 자산 |
asset_background |
배경 유형 자산 |
asset_font |
폰트 유형 자산 |
asset_shader |
셰이더 유형 자산 |
함수 반환값
- 함수가 성공적으로 실행되면, 자산에 태그가 하나 이상 존재할 경우
true를 반환합니다. - 그렇지 않으면
false를 반환합니다. - 특정 태그 또는 태그 집합에 대한 정확한 확인이 필요할 경우,
asset_has_tags()함수를 사용하십시오.
함수 구문
asset_has_any_tag(name_or_index, tags, [asset_type]);
인수 설명
| 인수 | 유형 | 설명 |
|---|---|---|
name_or_index |
String 또는 Asset | 자산의 이름(문자열) 또는 자산 핸들 |
tags |
String 또는 String[] | 단일 자산 태그 문자열 또는 여러 자산 태그의 배열 |
[asset_type] |
Asset Type Constant | 태그를 확인할 자산 유형; 첫 번째 인수로 핸들을 제공할 때만 사용됨 |
예제 코드
아래의 코드는 태그 배열을 생성한 뒤, 주어진 오브젝트에 태그가 있는지를 확인하여, 태그가 있을 경우 다른 오브젝트의 인스턴스를 생성하는 기능을 수행합니다.
var _a = array_create(3);
_a[0] = "boss";
_a[1] = "main_boss";
_a[2] = "final_boss";
if asset_has_any_tag(object_index, _a, asset_object) {
instance_create_layer(0, 0, "Overlay", obj_Boss_Text);
}
추가 활용 예제
- 게임 레벨에 따라 특정 오브젝트 생성하기
gml var tags = ["enemy", "strong"]; if asset_has_any_tag(object_index, tags, asset_object) { instance_create_layer(x, y, "EnemiesLayer", obj_StrongEnemy); } - 스프라이트에 특정 태그가 있는지 확인하기
gml if asset_has_any_tag("my_sprite", "animation", asset_sprite) { // 애니메이션 태그가 있을 경우 스프라이트 실행 sprite_index = my_sprite; image_speed = 1; } - 사운드에 특정 태그 검사하기
gml var sound_tags = ["bgm", "level_1"]; if asset_has_any_tag(sound_index, sound_tags, asset_sound) { audio_play_sound(sound_index, 1, true); }
이 문서는 asset_has_any_tag 함수를 통해 자산의 태그를 검사하고 활용하는 방법을 제시합니다. 다양한 예제를 통해 이 함수를 실제로 어떻게 사용할 수 있는지 이해하는 데 도움이 되길 바랍니다.