|
|
В основе системы лежит иерархия: **UObject** является базовым классом для всех управляемых объектов, **AActor** — для объектов, которые могут быть размещены в мире, а **ActorComponent** — для модульных блоков функциональности, прикрепляемых к акторам . Все UObject'ы находятся под управлением сборщика мусора (Garbage Collector), реализующего алгоритм **"пометить-и-подмести" (mark-sweep)**. В отличие от нативных C++ объектов, где разработчик несет полную ответственность за ручное управление памятью, UObject'ы автоматически отслеживаются через систему ссылок и метаданных (FName, Outer), что неизбежно увеличивает потребление памяти .
|
|
В основе системы лежит иерархия: **UObject** является базовым классом для всех управляемых объектов, **AActor** — для объектов, которые могут быть размещены в мире, а **ActorComponent** — для модульных блоков функциональности, прикрепляемых к акторам . Все UObject'ы находятся под управлением сборщика мусора (Garbage Collector), реализующего алгоритм **"пометить-и-подмести" (mark-sweep)**. В отличие от нативных C++ объектов, где разработчик несет полную ответственность за ручное управление памятью, UObject'ы автоматически отслеживаются через систему ссылок и метаданных (FName, Outer), что неизбежно увеличивает потребление памяти .
|