카메라 파괴 함수 (camera_destroy)
이 문서에서는 camera_destroy
함수에 대해 설명합니다. 이 함수를 사용하면 어떤 카메라도 파괴할 수 있습니다. 함수를 호출할 때는 고유한 카메라 ID 값을 제공해야 하며, 이 값은 camera_create_*
함수나 Room Editor에서 뷰 포트와 뷰를 설정할 때 사용하는 view_camera
배열에서 얻을 수 있습니다.
카메라가 현재 보이는 뷰에 할당되어 있는 경우, 새로운 카메라를 같은 스텝에서 할당하지 않는 한 해당 카메라를 파괴해서는 안 됩니다. 또한, 게임에서 더 이상 필요하지 않은 카메라는 메모리 누수를 방지하기 위해 반드시 파괴해야 합니다. Room Editor에서 할당된 기본 카메라도 파괴할 수 있지만, 뷰 포트에 새로운 카메라를 할당하거나 비활성화하지 않으면 이상한 결과가 발생할 수 있습니다.
문법
camera_destroy(camera_id)
인수
인수 이름 | 타입 | 설명 |
---|---|---|
camera_id | 고유 카메라 ID | 카메라를 생성할 때 반환된 고유 카메라 ID |
반환값
N/A
예제
camera_destroy(view_camera[0]);
view_camera[0] = camera_create_view(0, 0, 640, 480, 0, obj_Player, 5, 5, -1, -1);
위의 코드는 현재 뷰 포트 [0]에 할당된 카메라를 파괴한 후, 새로운 카메라를 생성하고 그 ID를 해당 포트에 할당합니다.
활용 예제
예제 1: 카메라 파괴 후 새로운 카메라 생성
if (some_condition) {
camera_destroy(view_camera[1]);
view_camera[1] = camera_create_view(100, 100, 800, 600, 0, obj_Enemy, 5, 5, -1, -1);
}
예제 2: 카메라가 보이는 뷰에 할당되어 있는지 확인
if (view_camera[0] != noone) {
camera_destroy(view_camera[0]);
}
예제 3: 메모리 누수 방지를 위한 카메라 관리
for (var i = 0; i < array_length(view_camera); i++) {
if (view_camera[i] != noone) {
camera_destroy(view_camera[i]);
view_camera[i] = noone;
}
}
예제 4: 기본 카메라 파괴
if (default_camera != noone) {
camera_destroy(default_camera);
default_camera = noone;
}
이 문서에서는 camera_destroy
함수의 사용법과 다양한 활용 예제를 살펴보았습니다.