tag_get_assets 함수 설명 및 예제
## 함수 설명
`tag_get_assets` 함수는 특정 태그가 부여된 모든 자산의 이름을 가져오는 함수입니다. 단일 태그 문자열이나 여러 태그 문자열을 포함하는 배열을 매개변수로 제공할 수 있습니다. 이 함수는 주어진 태그와 연결된 자산의 이름이 문자열 형식으로 들어 있는 배열을 반환합니다. 만약 자산의 핸들이 필요하다면, 반환된 이름과 함께 `asset_get_index` 함수를 사용할 수 있습니다. 주어진 태그에 해당하는 자산이 없거나 오류가 발생하면 빈 배열이 반환됩니다.
### 문법
```gml
tag_get_assets(tags);
매개변수
| 매개변수 | 타입 | 설명 |
|---|---|---|
| tags | String 또는 Array | 단일 자산 태그 문자열 또는 여러 자산 태그를 포함한 배열입니다. |
반환값
- Array: 태그와 연결된 자산의 이름을 포함한 배열.
사용 예제
다음 예제는 "background"라는 태그를 가진 모든 자산의 이름을 가져오고, 그 중에서 스프라이트 타입의 자산만을 필터링하여 리스트에 추가하는 코드입니다.
backgrounds = ds_list_create();
var _assets = tag_get_assets("background");
for (var i = 0; i < array_length(_assets); ++i) {
if asset_get_type(_assets[i]) == asset_sprite {
ds_list_add(backgrounds, asset_get_index(_assets[i]));
}
}
예제 설명
- 리스트 생성:
ds_list_create()함수를 사용하여backgrounds라는 빈 리스트를 생성합니다. - 자산 가져오기:
tag_get_assets("background")로 태그가 "background"인 자산의 이름을 모두 가져옵니다. - 자산 필터링: 루프를 통해 각 자산의 타입을 확인하고, 스프라이트 타입일 경우 해당 자산의 고유 핸들을 리스트에 추가합니다.
다양한 활용 및 응용 예제
1. 여러 태그를 사용하는 경우
다음 예제는 "background"와 "foreground" 두 개의 태그를 가진 자산을 모두 가져오는 방법입니다.
backgrounds = ds_list_create();
var _assets = tag_get_assets(["background", "foreground"]);
for (var i = 0; i < array_length(_assets); ++i) {
if asset_get_type(_assets[i]) == asset_sprite {
ds_list_add(backgrounds, asset_get_index(_assets[i]));
}
}
2. 태그가 없는 경우 처리하기
자산이 없을 때 처리하는 코드입니다.
var _assets = tag_get_assets("nonexistent_tag");
if array_length(_assets) == 0 {
show_message("해당 태그에 자산이 없습니다!");
} else {
// 자산 처리 로직
}
이 예제에서는 "nonexistent_tag"라는 태그가 존재하지 않을 경우, 메시지를 표시하도록 처리하고 있습니다.
결론
tag_get_assets 함수는 자산을 관리하고 필터링할 때 매우 유용한 도구입니다. 적절한 태그를 사용하여 원하는 자산을 쉽게 찾고, 필요한 작업을 수행할 수 있습니다. ```