To, czego chcesz, to profiler pamięci, który ma Unity. Tutaj: http://docs.unity3d.com/Manual/ProfilerMemory.html
Ale twoje założenie jest w większości słuszne, jeśli obiekt GameObject nie jest widoczny dla kamery, nie jest rysowany i zużywa mniej zasobów, ale nadal musi zużywać trochę. GameObject nadal istnieje w pamięci, włączając w to wszystkie tekstury, skrypty modeli itp. Nadal pochłania czas pracy procesora za pomocą metod Update i FixedUpdate (i różnych innych opisanych tutaj ).
Ale zwykle głównym spowolnieniem jest rysunek, niewielka ilość czasu procesora jest wykorzystywana do ustalenia, że obiekt znajduje się poza fragmentem kamery (granicami), ale nie wykonuje się rysowania.
Krótka odpowiedź brzmi „tak”; wszystko, co jest gotowe do użycia w grze, zajmuje pamięć.
Inną rzeczą do rozważenia jest koszt liczby klatek na sekundę:
5 obiektów z 5 oddzielnymi teksturami, narysowanych osobno, wymaga zmiany stanu pomiędzy nimi. Możesz zaoszczędzić trochę pamięci, rozładowując nieużywane tekstury.
Po załadowaniu wszystkich oddzielnych tekstur do pojedynczej tekstury atlasu, ślad pamięci zostaje ustalony i nie można już rozładowywać pojedynczej tekstury. Po utworzeniu wystarczy tylko raz powiązać atlas, aby narysować wszystkie obiekty.
Innym przykładem jest prosty bufor wierzchołków i indeksów. Jeśli wiele punktów często przełącza się między widocznymi a nie, szybciej pozostawić „przestarzałe” punkty w buforze wierzchołków i przesłać tylko nowy bufor indeksu.
Jest wiele razy, gdy wyższy koszt pamięci z góry jest lepszy niż wiele zmian stanu.
Korzystając z przewijania bocznego jako przykładu, jeśli możesz poruszać się tylko w prawo (mapa przewija się tylko w lewo), każdy obiekt, który przewija się z lewej strony ekranu, może zostać trwale rozładowany, ponieważ nigdy więcej go nie użyjesz. Ponadto zawartość obiektów może być ładowana na żądanie tuż przed przewinięciem obiektu do widoku z prawej strony.
źródło
Wiele odpowiedzi dotyczy głównie graficznego aspektu twojego pytania.
Faktem jest, że zajmą one różne zasoby, a ich koszt w porównaniu z rysowaniem obiektu nie jest ustalony. Nie jest tak rzadkie, jak sugerują niektóre odpowiedzi, że twoje komponenty wykonują droższe operacje niż rysowanie, ale możesz zminimalizować, ile zasobów używają. Pamiętaj również, że GameObject zajmuje niewielką ilość pamięci, podobnie jak jego komponenty. Komponenty mogą również wykonywać czynności, które zajmują sporo pamięci.
Najprostszym sposobem na zminimalizowanie działania komponentów poza ekranem jest system oparty na wywołaniach zwrotnych OnBecameVisible i OnBecameInvisible .
Oczywiście ma to bardzo ograniczoną przydatność, ponieważ jest wiele razy, kiedy chcesz, aby obiekt poza ekranem wpływał na grę. Możesz jednak rozwinąć wzór tego rodzaju, aby uzyskać drobnoziarnisty system, który może zminimalizować efekt twoich najdroższych obliczeń. Nawet coś tak prostego, jak obniżenie jakości ścieżki podążającej za skryptem, gdy obiekt znajduje się poza ekranem, może na dłuższą metę przynieść duże oszczędności.
źródło
Zajmuje pamięć, aby utrzymać ją przy życiu i zaktualizować jej pozycję i inne właściwości.
Ale nie zużywa zasobów graficznych komputera / telefonu, ponieważ nie jest widoczny.
Tak, zużywa zasoby pamięci, ale nie zasoby graficzne, jak widoczny Obiekt Gry.
źródło
Wszystko, co znajduje się w programie, zużywa zasoby; Nie sądzisz, że programy działają po prostu na nadziejach i marzeniach?
Pytanie powinno brzmieć, ile zasobów zużywa obiekt gry, i wydaje mi się, że jest to dość solidna odpowiedź: http://answers.unity3d.com/questions/280455/how-much-memory-a-gameobject- consume.html
Krótko mówiąc, same zużywają znikome zasoby. Ale dlaczego miałbyś chcieć, aby mnóstwo przedmiotów w grze po prostu siedziało w grze i nic nie robiło? Na koniec dnia to, co faktycznie robisz, aby te obiekty gry „działały”, jest przyczyną wszelkiego rodzaju kosztów ogólnych - i ile zasobów wymaga to bardzo indywidualnie dla każdego przypadku.
źródło