В этом руководстве описано, как добавить в устройство Verse больше настроек путём вынесения в интерфейс свойств, которые можно будет изменять прямо в редакторе, не трогая код Verse.
Преимущества такого подхода:
- Более быстрая реализация изменений: тестируйте различные конфигурации устройств творческого режима без изменения кода.
- Возможность повторного использования: используйте одно и то же устройство многократно, изменяя его свойства и параметры. К примеру, можно активировать то или иное поведение в зависимости от значения свойства типа
logic
, вынесенного в интерфейс редактора. - Упрощение: узнайте, как можно использовать устройство, изменяя его свойства без обращения к коду, чтобы понять принцип работы этого устройства.
Вынесение переменной в редактор
Чтобы вынести переменную в интерфейс редактора в качестве редактируемого свойства, добавьте к ней атрибут editable
.
Выполните следующие действия, чтобы вынести переменную в редактор:
- Убедитесь, что ваше устройство Verse добавлено на уровень. См., как это сделать, в уроке Добавление Verse-устройства на свой уровень.
- Добавьте редактируемый атрибут к переменной, которая является частью определения вашего устройства Verse. В следующем примере поле строки
GreetingMessage
является редактируемым свойством со значением по умолчанию"Привет, незнакомец"
.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable GreetingMessage:string = "Привет, незнакомец"
- Скомпилируйте код и обновите устройство Verse на уровне.
- В окне Структура в UEFN выберите устройство Verse, чтобы открыть его панель Сведения.
- На панели «Сведения» устройства Verse теперь есть свойство
GreetingMessage
, и вы можете изменить это строковое значение для данного экземпляра устройства.
Значение редактируемого свойства изменяется только для этого экземпляра устройства. Если на вашем уровне несколько устройств Verse, каждое из них может иметь собственное значение свойства.
Добавление ссылки Verse на устройство творческого режима на уровне
Выполните следующие действия, чтобы добавить ссылку на устройство творческого режима на вашем уровне:
- Make sure your Verse device is added to your level. See Adding Your Verse Device to Your Level for steps.
- Добавьте редактируемый атрибут к переменной вашего устройства творческого режима, которая является частью определения устройства Verse. В данном примере поле
MyButtonDevice
устройства Кнопка является редактируемым свойством со значением по умолчаниюbutton_device{}
, но оно не связано с устройством Кнопка на уровне.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable MyButtonDevice:button_device = button_device{}
- Скомпилируйте код и обновите устройство Verse на уровне.
- В окне Структура в UEFN выберите устройство Verse, чтобы открыть его панель Сведения.
- Устройство Verse теперь имеет свойство
MyButtonDevice
на панели «Сведения». - Вы можете выбрать на своём уровне устройство «Кнопка», на которое будет ссылаться ваше устройство Verse:
- Используйте инструмент Выбрать актор из сцены, чтобы выбрать устройство в окне просмотра.
- Или воспользуйтесь выпадающим меню и найдите устройство, которое требуется привязать.
Вынесение массива в редактор
Вы можете вынести в редактор изменяемый по размеру массив, который является частью вашего устройства Verse. В данном примере добавлено редактируемое поле массива button_device
с именем MyButtonDevices
.
- Убедитесь, что ваше устройство Verse добавлено на уровень. См., как это сделать, в уроке Добавление Verse-устройства на свой уровень.
- Добавьте редактируемый атрибут к переменной массива устройства творческого режима, которая является частью определения вашего устройства Verse. В данном примере поле
MyButtonDevices
устройства Кнопка является редактируемым свойством и пустым массивом.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } hello_world_device := class(creative_device): @editable MyButtonDevices:[]button_device = array{}
- Скомпилируйте код и обновите устройство Verse на уровне.
- В окне Структура в UEFN выберите устройство Verse, чтобы открыть его панель Сведения.
- Устройство Verse теперь имеет свойство массива MyButtonDevices на панели «Сведения», в котором нет элементов.
-
Нажмите Добавить элемент, чтобы добавить элементы в массив MyButtonDevices.
Если вы хотите удалить элементы из массива в редакторе:
- Можно выбрать Удалить все элементы, что приведёт к удалению всех элементов в массиве.
- Или же можно удалить отдельный элемент, развернув дополнительные действия для элемента и выбрав Удалить.
Каждая копия этого устройства hello_world_device, которую вы разместите на уровне, будет иметь собственные редактируемые свойства MyButtonDevices
, которые затем можно использовать, чтобы поменять устройства «Кнопка», на которые ссылаются устройства Verse.
Вынесение пользовательских типов в редактор
Вы можете вынести пользовательский тип, такой как класс, в редактор в качестве редактируемого свойства.
- Убедитесь, что ваше устройство Verse добавлено на уровень. См., как это сделать, в уроке Добавление Verse-устройства на свой уровень.
- Добавьте в определение класса спецификатор
concrete
. Он необходим, поскольку для отображения в редакторе все поля должны быть инициализированы.example := class<concrete>: MyData:float = 0.0 MyDevice:button_device = button_device{} IsEnabled:logic = false
- Добавьте атрибут
editable
для каждой переменной в классе, которую вы хотите сделать редактируемым свойством в редакторе.example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false
- В определении устройства Verse определите переменную пользовательского типа и добавьте атрибут
editable
, чтобы она отображалась в редакторе.using { /Fortnite.com/Devices } using { /Verse.org/Simulation } example := class<concrete>: @editable MyData:float = 0.0 @editable MyDevice:button_device = button_device{} IsEnabled:logic = false hello_world_device := class(creative_device): @editable MyExample:example = example{}
- Скомпилируйте код и обновите устройство Verse на уровне.
- В окне Структура в UEFN выберите устройство Verse, чтобы открыть его панель Сведения.
- Теперь устройство Verse имеет раздел
MyExample
на панели «Сведения». - Разверните секцию
MyExample
, чтобы увидеть в нём свойства MyData и MyDevice. СвойствоIsEnabled
не отображается, поскольку у него нет атрибутаeditable
.
Создание редактируемого свойства в виде массива пользовательских типов делает более гибкой информацию, которую вы предоставляете устройству Verse. Например, вы можете определить собственный класс игровой доски с помощью ссылок на устройства. Массив таких игровых досок в вашем устройстве Verse позволит выбирать количество уровней в игре и задавать уникальные настройки для каждого из них. Вы даже можете определить редактируемые массивы в определении своего класса, чтобы иметь больше возможностей для расширения и персонализации своей информации.
Поддерживаемые редактируемые типы
На данный момент в качестве редактируемых свойств в редактор можно выносить следующие типы:
logic
;int
;float
;enum
;string
;- массивы редактируемых типов;
- ассоциативные массивы редактируемых типов;
- структуры редактируемых типов;
- экземпляры классов.
Следующий шаг: Verse и события устройства
Вы разобрались, как управлять устройствами с помощью Verse, однако впереди ещё много интересного. Узнайте, как сделать устройства ещё более гибкими, в уроке Реализация взаимодействий с устройствами. Вы научитесь программировать реакцию на события, отправляемые устройствами, такими как кнопки, для создания динамичного игрового процесса, реагирующего на действия игрока.