weak_ref_any_alive 함수 설명
weak_ref_any_alive 함수는 다양한 구조체에 대한 약한 참조가 여전히 "살아있는지" 확인하는 데 사용됩니다. 이 함수는 약한 참조의 배열을 입력받아, 해당 구조체가 여전히 참조되고 있는지 여부를 판단합니다. 만약 구조체가 여전히 참조되고 있다면 true를 반환하고, 그렇지 않다면 false를 반환합니다. 만약 배열에 약한 참조가 아닌 값이 포함되어 있다면 함수는 undefined를 반환합니다.
함수 문법
weak_ref_any_alive(array, [index], [length])
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| array | Array | 확인하고자 하는 구조체에 대한 약한 참조 배열 |
| index | Real | 확인을 시작할 배열의 인덱스 |
| length | Real | 주어진 인덱스에서 확인할 위치의 수 |
반환값
- Boolean (또는 undefined)
활용 예제
- 기본 사용 예제
약한 참조 배열을 확인하고, 살아있는 구조체가 있으면 인스턴스를 파괴합니다.gml if (weak_ref_any_alive(inventory_ref_array)) { instance_destroy(obj_Inventory_Control); } - 인덱스와 길이 지정
특정 인덱스에서 시작하여 제한된 길이만큼 확인합니다.gml if (weak_ref_any_alive(inventory_ref_array, 2, 5)) { // 특정 인덱스에서 5개 요소를 확인 } - 약한 참조가 아닌 값 포함 시 처리
배열에 약한 참조가 아닌 값이 포함된 경우의 처리 예제입니다.gml var result = weak_ref_any_alive(mixed_array); if (result == undefined) { // 배열에 약한 참조가 아닌 값이 포함됨 } - 반복문을 통한 확인
여러 약한 참조를 반복적으로 확인하는 예제입니다.gml for (var i = 0; i < array_length(ref_array); i++) { if (weak_ref_any_alive(ref_array, i, 1)) { // 각 약한 참조를 개별적으로 확인 } } - 조건부 로직 추가
살아있는 구조체에 따라 다른 행동을 취하는 예제입니다.gml if (weak_ref_any_alive(enemy_ref_array)) { // 적이 살아있을 때의 행동 } else { // 적이 모두 파괴되었을 때의 행동 }
이와 같은 방식으로 weak_ref_any_alive 함수를 활용하여 약한 참조의 상태를 확인하고, 필요한 로직을 구현할 수 있습니다.