약한 참조 확인 함수 (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
함수를 활용하여 다양한 상황에서 약한 참조의 유효성을 확인하고, 그에 따라 적절한 처리를 할 수 있습니다.