Asset Tag 가져오기 함수 설명서
asset_get_tags 함수는 Asset Browser에서 특정 에셋에 할당된 모든 태그를 가져오는 기능을 제공합니다. 이 함수는 사용자로부터 에셋의 이름 (문자열) 또는 에셋 인덱스를 입력받고, 해당 에셋에 대한 태그의 배열을 반환합니다. 만약 태그를 찾을 수 없거나 오류가 발생하면 (예: 주어진 이름 문자열이 존재하지 않음) 반환되는 배열은 비어 있게 됩니다. 에셋 핸들을 입력하는 경우, 선택적 에셋 타입 인수를 제공해야 합니다. 이는 다른 타입의 에셋이 동일한 인덱스를 가질 수 있지만 동일한 이름을 가질 수는 없기 때문입니다.
함수 문법
asset_get_tags(name_or_index, [asset_type]);
매개변수
| 매개변수 | 유형 | 설명 |
|---|---|---|
| name_or_index | 문자열 또는 Asset | 에셋의 이름 (문자열) 또는 에셋 핸들 |
| [asset_type] | 에셋 타입 상수 | 첫 번째 인수로 핸들을 제공할 때만 사용되며, 태그를 가져올 에셋의 타입을 나타냅니다. |
반환값
- 배열: 해당 에셋에 할당된 태그의 배열
사용 예시
my_tags = asset_get_tags(object_get_name(object_index));
위 코드에서는 인스턴스가 생성된 오브젝트에 할당된 모든 태그를 가져옵니다.
활용 및 응용 예제
1. 특정 에셋의 태그 확인하기
객체의 태그를 확인하여 게임 진행 중 특정 조건을 처리할 수 있습니다.
var object_name = "enemy";
var tags = asset_get_tags(object_name);
if(array_length(tags) > 0) {
show_message("이 적의 태그: " + string_join(tags, ", "));
} else {
show_message("태그가 없습니다.");
}
2. 에셋 타입에 따른 태그 가져오기
에셋 핸들을 사용하여 특정 타입의 에셋 태그를 가져올 수 있습니다.
var enemy_handle = some_enemy_obj;
var enemy_tags = asset_get_tags(enemy_handle, asset_type_object);
if(array_length(enemy_tags) > 0) {
// 적의 특정 태그를 처리하는 로직
}
3. 태그를 사용한 조건부 로직
게임 내에서 특정 태그에 따라 행동을 다르게 할 수 있습니다.
var player_tags = asset_get_tags(player_object_name);
if(array_index(player_tags, "power_up") != -1) {
// 플레이어가 '파워 업' 태그가 있을 경우
increase_player_power();
}
4. 비어있는 태그 검증
태그가 비어 있는지 확인하고, 조건을 다르게 수행하는 방법.
var tag_array = asset_get_tags("my_item");
if(array_length(tag_array) == 0) {
// 태그가 없는 경우 처리
add_item_to_inventory("my_item");
} else {
// 태그가 있는 경우 처리
show_message("Item has tags: " + string_join(tag_array, ", "));
}
이처럼 asset_get_tags 함수를 활용하여 에셋에 대한 정보를 효과적으로 처리하고, 다양한 게임 로직에 응용할 수 있습니다.