약한 참조 확인 함수 (weak_ref_alive)
이 문서에서는 weak_ref_alive 함수에 대해 설명합니다. 이 함수는 구조체에 대한 약한 참조가 여전히 "활성" 상태인지 확인하는 데 사용됩니다.
함수 설명
weak_ref_alive 함수를 사용하면 약한 참조가 여전히 유효한지 확인할 수 있습니다. 이 함수는 weak_ref_create 함수에 의해 반환된 약한 참조를 인자로 받아, 해당 구조체가 여전히 참조되고 있는지 여부를 판단합니다. 만약 구조체가 여전히 참조되고 있다면 true를 반환하고, 그렇지 않다면 (가비지 컬렉션에 의해 수집된 경우) false를 반환합니다. 만약 약한 참조가 아닌 값을 전달하면 함수는 undefined를 반환합니다.
문법
weak_ref_alive(weak_ref)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| weak_ref | Struct | 확인하고자 하는 구조체의 약한 참조입니다. |
반환 값
- Boolean (또는 undefined)
예제
아래 코드는 약한 참조가 여전히 활성 상태인지 확인하고, 활성 상태일 경우 변수를 -1로 설정하여 구조체의 참조를 해제하고 가비지 컬렉션이 가능하도록 합니다.
if (weak_ref_alive(inventory_ref)) {
inventory = -1;
}
활용 예제
- 게임 아이템 관리
gml if (weak_ref_alive(item_ref)) { // 아이템이 여전히 존재할 경우 item_count += 1; } - 유저 세션 확인
gml if (weak_ref_alive(session_ref)) { // 세션이 유효할 경우 user_status = "active"; } - NPC 상태 관리
gml if (weak_ref_alive(npc_ref)) { // NPC가 여전히 존재할 경우 npc_health -= 10; } - 미션 진행 확인
gml if (weak_ref_alive(mission_ref)) { // 미션이 진행 중일 경우 mission_progress += 1; } - 오브젝트의 상태 체크
gml if (weak_ref_alive(object_ref)) { // 오브젝트가 여전히 존재할 경우 object_status = "active"; }
이와 같이 weak_ref_alive 함수를 활용하여 다양한 상황에서 약한 참조의 유효성을 확인하고, 그에 따라 적절한 처리를 할 수 있습니다.