Most people don’t stop to think about the complexity of what goes on inside the Unity game engine. Users, including myself, just take it for granted.
For me, it’s probably the most complex piece of software I have ever used. (I’m not referring to usability or the interface, I’m referring to the guts of the game engine, and the ability to support all different platforms).
The only other more complex software architecture would be my OS).
I think the ability to edit a material in real-time in the editor is probably the one of the best features.
You can pause the editor and tweak any parameters of a material, or assign new textures. This is crucial for getting the look and feel of things right. When you have camera effects running, and dynamic lighting, to be able to change a material on the fly is a massive workflow saver.
Edit: Forgot to mention the material is automatically saved too everytime it changes. No need to re-assign the settings after exiting playmode.
What do you think? What is the best feature for you?
I like Unity’s object-component design. I think it’s very logical. I wish tho that there would be also hierarchy for components in objects, similar to object hierarchy, but hey, you can’t have everything!
Yeah, I also feel the hierarchy could be improved a bit. I always envisioned icons displayed next to the objects representing what types of components are attached to the game object, including the types of components included in the children. Say you have a gamobject with a child gameobject that has a collider and audiosource attached, it would be nice if the hierarchy showed a little icon of a collider and audio source in the top-level in the hierarchy, indicating there’s children with certain components in the tree. I hope Im making sense here.
There might be asset items on the asset store for these types of things, I haven’t really looked into it.
I think one of the most remarkable features is the ability to extend the editor, leveraging it to create custom asset editors for your game.
I also like that you can dig into the guts of things like building up a mesh from vertices and texture coordinates and such, and even calling GL functions directly - i.e. providing high level functionality that works in a large number of cases, but also giving programmatic access to the internals for the edge cases.
I like it’s simple UI and in general it feels like the way the unity developers thought of how things work, seems to match up with how I think it would work making it smooth to work with. Also I like transfer of some script elements into inspector UI (like range (slider) or textfields, the way arrays are displayed) it makes it easy and intuitive to work with those things seem so small, but I would probably have implemented something like that myself, if I would have needed to work from scratch. So it’s very nice that I don’t need to.
I draw debug shapes with it. Lots and lots of shapes. Spheres, cylinders, visibility cones, oriented boxes, etc. heck, I even had wireframe text module.
Yup, pretty much. I wish gizmos could be used in actual game as well, not only for debug purposes, but e.g. to use Unity’s movement/rotation/whatever gizmos in in-game editing tools.