Properties
For the object to be correctly integrated into the world, defining its position, inherent characteristics and outside appearance will be insufficient. Properties specify the way the object will behave and interact with other objects and the scene environment. A property can be thought of as a "material" for application logic.
A property is a set of logic-related parameters. You can define conditions, based on which parameters of the property become available/unavailable in the UnigineEditor.
Properties can be assigned to both the whole node and a single surface:
- In the first case, properties can specify additional settings that extend the built-in ones (e.g., they can be used to specify if a node is interactive and whether it is a switch). For a character, properties can be used to specify health points or gold amount. You can assign multiple properties to a single node.
- In the second case, a property can specify certain parameters that can be used during physical interaction with the surface. For example, the property can indicate the type of the material assigned to the surface (wood, metal, plastic, etc.). Only one property can be assigned to a surface.
UNIGINE's Properties system includes the following:
- Manual properties implemented by programmers (including base ones).
- User properties inherited from the manual ones and adjusted via the UnigineEditor by 3D artists.
All properties in the project are organized in a hierarchy.
Each property is stored in a separate *.prop file, except for the internal properties.
Manual Properties
Manual properties are created and edited manually: they are displayed as read-only in the UnigineEditor. It is possible to modify them via API at run time (if the corresponding flag is set), but such changes won't be saved. To customize a manual property, you should either inherit a new user property from it or directly edit the corresponding *.prop file.
In the *.prop file of a manual property its name is stored. If a manual property is inherited from another manual property, the child's *.prop file will store a name-based reference to the parent. The GUID for the manual property is uniquely determined by its name and is generated at run time.
Base Properties
Base property is a manual property that does not have a parent, base properties are at the top-level of the hierarchy, all other properties are inherited from them.
By default, UNIGINE provides 2 built-in read-only base properties: node_base and surface_base. You can also make custom base properties of your own.
User Properties
User property is a property inherited from any other property via the UnigineEditor, it overrides the parameters of its parent.
The *.prop file of the user property contains its GUID and a GUID-based reference to the parent property. Such file is created automatically when inheriting a new property in the UnigineEditor. The set of user property parameters is determined by its parent, while their values can be modified.
Internal Properties
Internal property is a property without a name. When cloning or inheriting a property, each new property becomes internal until a name is assigned to it. Internal properties are also created when you assign a property to a node.
See Also
- Hierarchy and Inheritance article to learn more about how properties are organized.
- Property GUIDs chapter to learn how to refer to manual and user properties.
- Property File Format article to learn more about the *.prop files.