ru:toolworks:docs:apparatus:detail

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

ru:toolworks:docs:apparatus:detail [2021/06/14 18:18] – создано + переведено jisparru:toolworks:docs:apparatus:detail [2022/01/05 13:58] (текущий) – обновил в соответствии с англоязычной версией jispar
Строка 1: Строка 1:
 ====== Деталь ====== ====== Деталь ======
  
-Детали - это главные строительные блоки в Apparatus'е. Это высокоуровневые сущности (в отличие от трейтов), которые поддерживают некоторую дополнительную ECS+ функциональность, например, мульти-итерацию и наследование.+Детали - это главные строительные блоки в Apparatus-е. Это высокоуровневые сущности (в отличие от [[ru:toolworks:docs:apparatus:trait|трейтов]]), которые поддерживают некоторую дополнительную ECS+ функциональность, например, мульти-итерацию и наследование.
  
-Детали наследуются от класса [[ue>API/Runtime/CoreUObject/UObject/UObject|UObject]] и являются субъектом сборщика мусора и Unreal'ской модели памяти.+Детали наследуются от класса [[ue>API/Runtime/CoreUObject/UObject/UObject|UObject]] и являются субъектом сборщика мусора и Unreal-овской модели памяти (в то время как трейты используют собственную организацию памяти). 
 + 
 +Если надо изменить какие-то составляющие детали, то достаточно обратиться к ним напрямую через оператор обращения к полю ''->'' или не-const метод самой детали. Нету нужды копировать данные детали, применять к ним изменения и устанавливать в сущностный объект. 
 + 
 +В качестве оптимизации для некоторой внутренней логики детали не могут быть легко удалены с сущностных объектов. Они могут быть только выключенными, т.е. *disabled*. По сути это то же самое, что и удаление, потому что [[ru:toolworks:docs:apparatus:filter|фильтры]] следят за состоянием enabled/disabled у детали в контексте отбора сущностей для оперирования.
  
 ===== Создание деталей ===== ===== Создание деталей =====
Строка 11: Строка 15:
 Чтобы создать деталь, видимую в вашем C++ коде, вам следует сделать следующее: Чтобы создать деталь, видимую в вашем C++ коде, вам следует сделать следующее:
  
-  - Откройте главное File-мению в UE и выберете опцию "New C++ Class..." :{{ :en:toolworks:docs:apparatus:ue-file-create-cpp-class.png?nolink |}}+  - Откройте главное File-меню в UE и выберете опцию "New C++ Class..." :{{ :en:toolworks:docs:apparatus:ue-file-create-cpp-class.png?nolink |}}
   - В открывшемся окне пометьте "Показывать все классы" ("Show All Classes"): {{ :en:toolworks:docs:apparatus:ue-add-show-all-cpp-classes.png?nolink |}}   - В открывшемся окне пометьте "Показывать все классы" ("Show All Classes"): {{ :en:toolworks:docs:apparatus:ue-add-show-all-cpp-classes.png?nolink |}}
-  - Теперь вы можете выбрать любой доступный базовый класс, включая классы Apparatus'а. Выберете "Detail" в качестве базового класса: {{ :en:toolworks:docs:apparatus:ue-create-cpp-detail.png?nolink |}}+  - Теперь вы можете выбрать любой доступный базовый класс, включая классы Apparatus-а. Выберете "Detail" в качестве базового класса: {{ :en:toolworks:docs:apparatus:ue-create-cpp-detail.png?nolink |}}
   - Кликните "Next" и вы должны увидеть диалог выбора имени. Назовите создаваемый класс как надо и продолжите, нажав на зелёную кнопку "Create Class": {{ :en:toolworks:docs:apparatus:ue-name-cpp-detail.png?nolink&600 |}}   - Кликните "Next" и вы должны увидеть диалог выбора имени. Назовите создаваемый класс как надо и продолжите, нажав на зелёную кнопку "Create Class": {{ :en:toolworks:docs:apparatus:ue-name-cpp-detail.png?nolink&600 |}}
   - Новый класс будет создан как комбинация заголовочного файла (.h) и файла-ресурса (.cpp). Всё будет помещено в "Source" (под)папку вашего проекта. Теперь вы должны увидеть их в выбранной системе программирования (IDE): {{ :en:toolworks:docs:apparatus:vscode-new-detail-class-sources.png?nolink |}}   - Новый класс будет создан как комбинация заголовочного файла (.h) и файла-ресурса (.cpp). Всё будет помещено в "Source" (под)папку вашего проекта. Теперь вы должны увидеть их в выбранной системе программирования (IDE): {{ :en:toolworks:docs:apparatus:vscode-new-detail-class-sources.png?nolink |}}
-  - Заметим, что вы, возможно, должны были рекомпилировать проект и/или перезапустить редактор после этого. Не волнуйтесь за некоторые возможные ошибки, вновь сгенерируйте проект IDE, скомпилируйте и запустите.{{ :en:toolworks:docs:apparatus:vscode-generate-project-files.png?nolink |}}+  - Заметим, что вы, возможно, должны будете рекомпилировать проект и/или перезапустить редактор после этого. Не волнуйтесь за некоторые возможные ошибки, вновь сгенерируйте проект IDE, скомпилируйте и запустите.{{ :en:toolworks:docs:apparatus:vscode-generate-project-files.png?nolink |}}
   - Содержимое соответствующих фалов должно быть таким:   - Содержимое соответствующих фалов должно быть таким:
     * ''MyDetail.h'':<code cpp>     * ''MyDetail.h'':<code cpp>
  • ru/toolworks/docs/apparatus/detail.1623683908.txt.gz
  • Последнее изменение: 2021/06/14 18:18
  • jispar