데이터 구조 해제 (Free Data Structure)
이 문서는 메모리에서 데이터 구조를 해제하는 방법에 대해 설명합니다. 데이터 구조가 더 이상 필요하지 않을 때 호출되어야 하며, 예를 들어 인스턴스의 Destroy 이벤트나 방 종료(Room End) 이벤트에서 사용됩니다. 데이터 구조를 해제하면 더 이상 사용할 수 없으며, 존재하지 않게 됩니다. 데이터 구조가 존재하는지 확인하기 위해 If Data Structure Exists라는 액션을 사용할 수 있습니다.
중요사항: 데이터 구조가 전역 변수가 할당된 인덱스를 가지고 있지 않으면 방 간에 데이터를 전달하지 않습니다. 예를 들어, 플레이어 인스턴스와 그 인스턴스에 할당된 리스트 데이터 구조가 있을 경우, 플레이어가 파괴되거나 플레이어 인스턴스가 포함된 방이 변경되면 리스트를 해제해야 합니다(플레이어 인스턴스가 지속적으로 유지(Persistent)되는 경우 제외). 따라서 플레이어 인스턴스에는 이러한 두 이벤트를 위한 두 개의 데이터 구조 해제 액션이 필요합니다.
액션 문법
인자 설명
| 인자 | 설명 | 타입 |
|---|---|---|
| Type | 해제할 데이터 구조의 타입 (리스트, 맵, 그리드, 또는 스택) | String |
| Variable | 해제할 데이터 구조의 인덱스를 저장하는 변수 | Variable Index |
활용 예제
다음은 리스트의 크기를 가져오고, for 루프를 사용하여 리스트에 저장된 인스턴스를 파괴한 후 리스트를 메모리에서 해제하는 코드 예제입니다.
var list_size = array_length(global.player_list); // 리스트 크기 가져오기
for (var i = 0; i < list_size; i++) {
var instance_id = global.player_list[i]; // 리스트에서 인스턴스 ID 가져오기
if (instance_exists(instance_id)) {
instance_destroy(instance_id); // 인스턴스 파괴
}
}
Free_Data_Structure(global.player_list); // 리스트 해제
최종 주의사항
모든 생성된 데이터 구조가 더 이상 필요하지 않을 때 해제되어야 합니다. 이는 메모리 누수를 방지하고 성능 문제를 최소화하며, 게임이 충돌하는 것을 예방하는 데 중요합니다.
© Copyright YoYo Games Ltd. 2021 All Rights Reserved