

Things are not grouped together in contiguous memory. The C++ object can also be anywhere in memory. That C# object could be anywhere in memory. This makes them easy to work with, however, it can come at a cost to performance because they potentially end up stored in an unstructured way. Their Components are C# wrappers on top of C++ components. However, the Component system was written in an object-oriented framework and it creates challenges for developers when it comes to managing cache and memory in ever-evolving hardware.Ĭomponents and GameObjects are “heavy C++” objects. You add a Rigidbody Component to a GameObject and it will start falling, or a Light Component to a GameObject and it will emit light. The traditional GameObject-Component concept continues to work well because it’s easy to understand for programmers and non-programmers alike, and easy to build intuitive UIs for.
