스켈레톤 슬롯 데이터 인스턴스
이 문서에서는 skeleton_slot_data_instance 함수에 대해 설명합니다. 이 함수는 현재 인스턴스와 관련된 Spine 스프라이트의 모든 사용 가능한 부착 슬롯에 대한 데이터를 미리 생성된 DS 리스트에 채울 수 있습니다. 이 데이터는 DS 맵 형태로 반환되며, 다음과 같은 키/값 쌍을 포함합니다:
| 키 | 설명 |
|---|---|
| "name" | 슬롯의 이름 |
| "bone" | 뼈의 이름 |
| "attachment" | 사용된 부착의 이름 또는 "(none)" |
각 키의 값은 문자열이며, 이러한 유형의 스프라이트에 대한 다른 스켈레톤 부착 함수에서 사용할 수 있습니다. 생성된 DS 맵은 파괴되지 않으므로, DS 리스트를 반복하여 생성된 각 맵을 직접 파괴해야 합니다.
문법
skeleton_slot_data_instance(list);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| list | DS List ID | DS 맵으로 채울 DS 리스트의 ID |
반환값
- N/A
예제
다음은 skeleton_slot_data_instance 함수를 사용하는 예제 코드입니다:
var list = ds_list_create();
var open = true;
slot_name = "";
skeleton_slot_data_instance(list);
for (var i = 0; i < ds_list_size(list); i++) {
||
||
if open {
if map[? "attachment"] == "(none)" {
open = false;
slot_name = map[? "name"];
}
}
ds_map_destroy(map);
}
ds_list_destroy(list);
위 코드는 DS 리스트를 생성한 후 인스턴스 스프라이트의 슬롯 데이터로 채웁니다. 이 데이터는 개별 DS 맵을 추출하기 위해 파싱됩니다. 그런 다음 빈 슬롯이 있는지 확인하고, 빈 슬롯이 있다면 변수 "slot_name"에 빈 슬롯 이름을 할당한 후 DS 맵을 파괴합니다. 마지막으로 더 이상 필요하지 않으므로 DS 리스트를 파괴합니다.
활용 예제
- 슬롯 데이터 확인: 특정 슬롯에 부착된 애니메이션이 있는지 확인하기 위해 슬롯 데이터를 가져오는 코드.
gml var list = ds_list_create(); skeleton_slot_data_instance(list); // 슬롯 데이터 처리 로직 ds_list_destroy(list); - 부착물 변경: 슬롯에 부착된 애니메이션을 변경하는 코드.
gml var list = ds_list_create(); skeleton_slot_data_instance(list); // 부착물 변경 로직 ds_list_destroy(list); - 빈 슬롯 찾기: 빈 슬롯을 찾아서 특정 작업을 수행하는 코드.
gml var list = ds_list_create(); skeleton_slot_data_instance(list); // 빈 슬롯 찾기 로직 ds_list_destroy(list); - 슬롯 이름 출력: 모든 슬롯의 이름을 출력하는 코드.
gml var list = ds_list_create(); skeleton_slot_data_instance(list); // 슬롯 이름 출력 로직 ds_list_destroy(list);
이와 같은 다양한 활용 예제를 통해 skeleton_slot_data_instance 함수를 효과적으로 사용할 수 있습니다.