Определение значений по умолчанию с использованием блока defaultproperties
Преобразование ссылок на объекты и классы | Объявление функций | Спецификаторы параметров функций | Переопределение функций | Private, Protected | Выражения case | Встроенные операторы и их приоритет | Создание объектов | Итераторы динамических массивов | Доступные спецификации метаданных |
В дополнение к установке значений по умолчанию для свойств актора с использованией окна свойств в UnrealEd, вы также можете присвоить значения по умолчанию для переменных членов классов путем размещения специальных выоажений внутри блока класса defaultproperties.
- В блоке defaultproperties не допустимо размещение операций, за исключением операций над динамическими массивами
- Запятые могут быть размещены в конце каждой строки, но это не обязательно
- Значения по умолчанию наследуются дочерними классами. Значения, указанные в defaultproperties дочернего класса переопределяют значения, указанные для базового классов.
Синтаксис
Синтаксис блока defaultproperties немного отличается от стандартного синтаксиса UnrealScript:
- Простые типы (Ints, Floats, Bools, Bytes):
- Статические массивы:
- ArrayProp(0)=Value1
ArrayProp(1)=Value2
или - ArrayProp[0]=Value1
ArrayProp[1]=Value2
- Динамические массивы:
- ArrayProp=(Value1,Value2,Value3)
или - ArrayProp(0)=Value1
ArrayProp(1)=Value2
ArrayProp(2)=Value3
или - ArrayProp.Add(Value1)
ArrayProp.Add(Value2)
ArrayProp.Add(Value3)
- Имена
- NameProp='Value'
или - NameProp=Value
- Объекты
- ObjectProp=ObjectClass'ObjectName'
- Подобъекты
- Begin Object Class=ObjectClass Name=ObjectName
VarName=Value
...
End Object
ObjectProperty=ObjectName
- Структуры (включая векторы):
- StructProperty=(InnerStructPropertyA=Value1,InnerStructPropertyB=Value2)
или - StructProperty={(
InnerStructPropertyA=Value1,
InnerStructPropertyB=Value2
)}
Обратите внимание: Внутри структуры значений по умолчанию некоторые типы используют несколько иной синтаксис.
- Встраиваемые (inline) статические массивы должны быть объявлены как (Обратите внимание, что здесь для доступа к элементам массива используются скобки "[]", вместо круглых скобок "()"):
StructProperty=(StaticArray[0]=Value,StaticArrayProp[1]=Value) - Встраиваемые (inline) динамические массивы должны быть объявлены с использованием следующего синтаксиса:
StructProperty=(DynamicArray=(Value,Value)) - Встраиваемые (inline) переменные имен должны быть заключены в кавычки:
StructProperty=(NameProperty="Value")
- Операции над динамическими массивами. Они могут быть использованы для модификации содержимого динамического массива, который может быть унаследован от бызового класса.
- Array.Empty - полностью очищает массив
- Array.Add(element) - добавляет элемент к концу массива
- Array.Remove(element) - удаляет элемент из массива, эта процедура может удалить все вхождения элемента
- Array.RemoveIndex(index) - удаляет элемент по указанному индексу
- Array.Replace(elm1, elm2) - заменяет elm1 на elm2. Все вхождения будут заменены. Если elm1 будет не найден, то выводится предупреждение.
Ознакомьтесь со следующим примером (основанном на Actor.uc):
Дата добавления: 2015-11-14; просмотров: 56 | Нарушение авторских прав
mybiblioteka.su - 2015-2024 год. (0.006 сек.)