Displaying Variables In UnrealEd
Declaration
To make a class variable show up in one of UnrealEd's property windows (Actor Properties Window, Material properties, etc.) you have to declare it with a pair of parentheses after the keyword var. You can also specify a group name in the parentheses to make the variable show up in that property group. If you don't specify a group name, the class name is used as the group.
Examples
This declaration in the Material class adds the FallbackMaterial property to the Material group:
var() Material FallbackMaterial;
These two properties of the Actor class are displayed in the Advanced group in the Actor Properties Window:
var(Advanced) bool bHighDetail; var(Advanced) bool bSuperHighDetail;
Managing Property Groups
Often a class doesn't need all the properties its superclass(es) declared.
In newer builds of the Unreal Engine (e.g. in UT2003) you can tell the engine to hide certain property groups through the HideCategories() class modifier. This modifier is also applied to all subclasses, so if you want to show a property group in a subclass again, you have to use the ShowCategories() class modifier.
Both modifiers take a comma-seperated list of group names.
There's also a special group None, which contains all variables not declared with parentheses. This group will only show up in-game when using the EditActor and EditObj console commands.
Examples
The Info class hides certain Actor property groups because Info classes are information holders and e.g. don't move or collide with other things:
class Info extends Actor abstract hidecategories(Movement,Collision,Lighting,LightColor,Karma,Force) native;
The MaterialSequence class doesn't need the Modifier properties, but wants to display the Material properties, which the Modifier class hides using HideCategories.
class MaterialSequence extends Modifier editinlinenew hidecategories(Modifier) showcategories(Material) native;
Types Of Editor Properties
The differnt types of properties could be put into several groups for UnrealEd users:
- Basic variable types
- Properties where you can only enter a value.
- Byte properties
- Like basic types, but the value can also be selected through a slider.
- Struct properties
- Contain several other properties from all groups mentined here.
- Color properties
- The RGB values can also be selected through the Windows color dialog window.
- Bool, enum and class properties
- Allow the user to select one value or class from a drop-down list.
- Object references
- An object can only be applied to the property.
- Inline objects
- Allow the user to edit the object's properties similar to structs.
- Array properties
- Either with a fixed or variable number of properties, which all have the same variable type.
Basic Variable Types
The basic variable types int, float, string and name only display an editbox for the user for typing in a new value.
A float property. |
Byte Properties
The basic variable type byte displays a small editbox for directly typing in a value and a slider ranging from 0 to 255.
A byte property |
Structs
Structs contain a number of other properties of any type. The properties are displayed indented and can be hidden or displayed with the little plus sign on the left side.
A rotator struct. |
Colors
Color is one of the built-in structs and is handled in a special way by UnrealEd. Instead of the struct's value the color is displayed and there are two buttons:
- Pick (How does this work?)
- ... opens the Windows color selection dialog window. The color you select in this dialog is applied to the R, G and B values of the color property, the A value is left unchanged.
A color struct. |
Bool, Enum And Class Properties
Bool and enum properties display the currently selected value and a button which opens a drop-down list with all possible values.
A bool property.@block@interface-Ed3-inlineobjects-class A class<ZoneInfo> property. |
Object References
Object variables without the editinline modifier are displayed as an editbox with three additional buttons: "Clear" sets the property to None, "Use" sets the property to the resource selected in the corresponding browser or the currently selected actor and "..." opens the corresponding browser for Materials, Sounds, Static Meshes, etc.
A simple Material reference. |
Inline Objects
Variables declared with an editinline* modifier work almost like normal object references, but also display the referenced object's properties.
An inline object of class FinalBlend. |
The editinline modifier removes the "Use" button, but adds a drop-down list with a "New" button for creating new objects.
An empty editinline reference. Select the class of the new object before creating it. |
The editinlineuse modifier works like editinline, but also re-adds the "Use" button.
An empty editinlineuse reference. |
Arrays
The two array types work quite similarly in the properties window. Both display a list of items named [0], [1], etc.
Static arrays have a fixed number of elements.
A static array. |
Dynamic arrays also display the buttons "Empty" and "Add" for the whole array and "Delete" and "Insert" for an array element. "Add" inserts a new array element after the last existing element, while "Insert" inserts it before the currently selected element.
An empty dynamic array. Two new elements have been added. |