This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Свойства (properties)

Для правильной интеграции объекта в мир недостаточно определения его положения, внутренних характеристик и внешнего вида. Свойства (properties) определяют способ поведения объекта и его взаимодействия с другими объектами и средой сцены.

Что такое свойство?#

Свойство можно рассматривать как «материал» для логики приложения. Оно представляет собой набор связанных с логикой параметров. Вы можете определить условия , на основании которых параметры свойства становятся доступными / недоступными в UnigineEditor.

Параметры свойств могут быть различных типов - от простого целого , представляющего жизни вашего персонажа, до узла, материала, файла (для текстур, мешей, звуков и т.д.), или свойство , что упрощает доступ к различным ресурсам.

Вы также можете использовать сложные типы данных в своих свойствах, что обеспечивает дополнительную гибкость для реализации логики вашего приложения. Эти типы данных следующие:

  • Структура - ее можно рассматривать как «определение свойства внутри свойства». Таким образом, структура также состоит из параметров любого типа, поддерживаемого свойством, включая массивы .

    Структуры, как и свойства, также могут включать в себя другие структуры (вложенные) и могут быть организованы в иерархию с наследованием и перегрузкой параметров (как в объектно-ориентированном программировании). Когда структура наследуется, все ее параметры наследуются от родителя. Если значение параметра изменено для родителя, оно будет автоматически изменено и для дочернего элемента, если до этого оно не было переопределено (установлено другое значение) для дочернего элемента.

    Примечание
    В случае, если свойство имеет параметр структуры ( struct ), определение этой структуры внутри файла *.prop должно появиться перед параметром. То же самое верно, когда структура наследуется от другой структуры: родительский элемент должен быть определен до его дочернего элемента.
  • Массив - это набор параметров одного типа, доступ к которым осуществляется с помощью общего имени, за которым следует индекс: array [0] .

    Массивы могут иметь несколько измерений (массивы массивов), но будьте осторожны: объем памяти, необходимый для массива, увеличивается экспоненциально с каждым измерением. Также поддерживаются массивы структур .

Система свойств UNIGINE включает в себя следующее:

Все свойства в проекте организованы в иерархию .

Каждое свойство хранится в отдельном файле *.prop , за исключением внутренних свойств .

Manual свойства#

Manual свойства создаются и редактируются вручную: они отображаются в UnigineEditor как доступные только для чтения. Их можно изменить через API во время выполнения (если установлен соответствующий флаг ), но такие изменения не будут сохранены. Чтобы настроить manual свойство, вы должны либо унаследовать от него новое пользовательское свойство , либо напрямую отредактировать соответствующий файл *.prop.

Примечание
При наследовании от свойства родительский элемент передает все свои параметры дочернему элементу. Если родительское свойство будет изменено позже, все унаследованные свойства, которые не были переопределены, будут обновлены автоматически.

В файле *.prop manual свойства хранится его имя. Если ручное свойство унаследовано от другого ручного свойства, дочерний файл *.prop будет хранить ссылку по имени на родительский. GUID для manual свойства однозначно определяется его именем и создается во время выполнения.

Базовые свойства#

Базовое свойство - это свойство manual, не имеющее родителя, базовые свойства находятся на верхнем уровне иерархии , все остальные свойства наследуются от них.

По умолчанию UNIGINE предоставляет встроенные базовые свойства 2 только для чтения: node_base и surface_base. Вы также можете создавать собственные базовые свойства.

Пользовательские свойства#

Пользовательское свойство (user) - это свойство, унаследованное от любого другого свойства через UnigineEditor , оно переопределяет параметры своего родителя.

Файл *.prop свойства пользователя содержит его GUID и ссылку на GUID на родительское свойство. Такой файл создается автоматически при наследовании нового свойства в UnigineEditor. Набор параметров свойств пользователя определяется его родительским элементом, а их значения могут быть изменены.

Внутренние свойства#

Внутреннее (internal) свойство - это свойство без имени. При клонировании или наследовании свойства каждое новое свойство становится внутренним, пока ему не будет присвоено имя. Внутренние свойства также создаются, когда вы назначаете свойство узлу.

Примечание
Экземпляры свойств, назначенные узлам, сохраняются в файле *.node или *.world.

Смотрите также#

  • Иерархия и наследование , чтобы узнать больше о том, как организованы свойства.
  • GUID свойств , чтобы узнать, как обращаться к руководству и свойствам пользователя.
  • Формат файла свойств , чтобы узнать больше о файлах *.prop.
  • Класс Properties , чтобы узнать больше об управлении свойствами через API.
  • Класс Property, чтобы узнать больше об управлении собственностью через API.
  • Класс PropertyParameter, чтобы узнать больше об управлении параметрами свойств через API.
Последнее обновление: 19.04.2024
Build: ()