답변:
원하는 것은 Unity에있는 메모리 프로파일 러입니다. 여기 : http://docs.unity3d.com/Manual/ProfilerMemory.html
그러나 게임 오브젝트가 카메라에 보이지 않으면 그려지지 않고 더 적은 리소스를 사용하지만 여전히 일부를 소비해야합니다. gameObject는 모든 텍스처, 모델 스크립트 등 메모리에 여전히 존재합니다. 또한 Update 및 FixedUpdate 메소드 (및 여기에 설명 된 다양한 기타 )를 통해 CPU 시간을 소비 합니다.
그러나 일반적으로 주요 둔화는 도면이며, 소량의 CPU 시간이 사용되어 객체가 카메라 절두체 (경계) 밖에 있음을 확인하지만 도면이 작성되지 않습니다.
Frustrum Culling 또는 숨겨진 표면 제거에 대해서도 알아야한다고 생각합니다. http://en.wikipedia.org/wiki/Hidden_surface_determination
주어진 프레임에서 오브젝트가 절두체 내부에 있지 않더라도 (즉, 보이는) 일부 드로우 콜 (쉐이더)이 여전히 실행되어 성능이 저하되기 때문에 이것은 게임 최적화의 중요한 부분입니다.
짧은 대답은 "예"입니다. 게임에서 사용할 준비가 된 것은 메모리를 차지하는 것입니다.
고려해야 할 또 다른 사항은 프레임 속도에 따른 비용입니다.
5 개의 개별 텍스처로 5 개의 오브젝트를 별도로 그리면 상태 변경이 필요합니다. 사용되지 않은 텍스처를 언로드하여 메모리를 절약 할 수 있습니다.
모든 개별 텍스처를 단일 아틀라스 텍스처에로드하면 메모리 공간이 고정되어 더 이상 개별 텍스처를 언로드 할 수 없습니다. 일단 생성되면 모든 객체를 그리려면 아틀라스를 한 번만 바인딩하면됩니다.
또 다른 예는 간단한 정점 및 인덱스 버퍼입니다. 많은 포인트가 자주 표시되거나 보이지 않는 상태로 전환되는 경우 정점 버퍼에 "stale"포인트를두고 새 인덱스 버퍼 만 업로드하는 것이 더 빠릅니다.
증가 된 사전 메모리 비용이 많은 상태 변경보다 선호되는 경우가 많습니다.
카메라를 회전해도 모르는 경우가 아니면 해당 오브젝트를 완전히 파괴하지 않습니다. 해당 오브젝트를 확인하기 위해 카메라가 다시 회전하지는 않습니다. "– Katu
예를 들어 사이드 스크롤러를 사용하여 오른쪽으로 만 이동할 수있는 경우 (맵만 왼쪽으로 스크롤) 화면 왼쪽에서 스크롤되는 객체는 다시 사용하지 않으므로 영구적으로 언로드 할 수 있습니다. 또한 객체가 오른쪽에서 화면으로 스크롤되기 직전에 객체에 대한 컨텐츠를로드 할 수 있습니다.
많은 답변이 주로 질문의 그래픽 측면을 고려하고 있습니다.
사실 그들은 다양한 리소스를 사용하고 객체를 그리는 데 비해 얼마나 비싸다는 것이 고정되어 있지 않습니다. 구성 요소가 드로잉보다 더 많은 비용을 들여 작업을 수행한다는 암묵적인 답변만큼 드문 일이 아니지만 사용하는 리소스 수를 최소화 할 수 있습니다. 또한 GameObject는 적은 양의 메모리를 차지하므로 구성 요소도 마찬가지입니다. 구성 요소는 상당한 메모리를 차지하는 작업을 수행 할 수도 있습니다.
오프 스크린 구성 요소의 영향을 최소화하는 가장 간단한 방법은 OnBecameVisible 및 OnBecameInvisible 콜백을 기반으로하는 시스템 입니다.
void OnBecameVisible()
{
myComplexComponent.enabled = true;
}
void OnBecameInvisble()
{
myComplexComponent.enabled = false;
}
물론 오프 스크린 오브젝트가 게임에 영향을 미치기를 원할 때가 많기 때문에 유용성이 매우 제한적입니다. 그러나 가장 비싼 계산의 영향을 최소화 할 수있는 세분화 된 시스템을 위해 이러한 종류의 패턴을 확장 할 수 있습니다. 객체가 화면 밖일 때 스크립트를 따르는 경로의 품질과 같은 것을 줄이는 것만으로도 장기적으로 크게 절약 할 수 있습니다.
메모리를 유지하고 위치 및 기타 속성을 업데이트하십시오.
그러나 컴퓨터 / 모바일 그래픽 리소스는 보이지 않기 때문에 소비하지 않습니다.
프로그램에있는 모든 것은 자원을 소비합니다. 당신은 프로그램이 단순히 희망과 꿈에서 실행된다고 생각하지 않습니까?
문제는 게임 오브젝트가 소비 않습니다 얼마나 많은 자원을해야하고,이를 위해 나는이 꽤 고체 대답은 생각 : http://answers.unity3d.com/questions/280455/how-much-memory-a-gameobject- consumer.html
요컨대, 그들은 무시할만한 자원을 스스로 소비합니다. 그러나 왜 게임에 아무것도하지 않고 많은 게임 오브젝트를 원하십니까? 하루가 끝날 무렵, 실제로 게임 오브젝트를 '수행'하게 만드는 것은 어떤 종류의 오버 헤드를 유발할 것이며, 필요한 자원이 사례별로 매우 많은 것입니다.