Показать исходный текстИстория страницыСсылки сюдаЭкспорт в PDFНаверх Поделиться через Поделиться через... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit TeamsНедавние измененияОтправить по эл.почтеПечатьПостоянная ссылка × Тип "механический" ECS явным образом отделяет данные и логику, оперирующую этими данными. Эта логика, в свою очередь, обычно выполняется покадрово (то есть повторяется). Apparatus имплементирует эту функциональность через концепт, называемый Mechanical (механический тип). Механические объекты - как многогранный организм, включают несколько механик (Mechanics), которые выполняются внутри них. Организация в C++ Если вы намерены идти C++ путём, создание собственного механического типа проходит примерно так. Откройте главное UE File-меню и выберете опцию «New C++ Class…»: В открывшемся окне поставьте галочку в чекбоксе «Show All Classes»: Теперь вы можете выбрать любой доступный базовый класс, включая классы плагина. Выберете «Mechanical Actor» в качестве базового: Нажмите «Next», и вы должны увидеть диалоговое окно выбора имени. Назовите создаваемый класс, как надо, и продолжите, кликнув зелёную кнопку «Create Class» внизу: Новый класс создастся как комбинация хеадера (.h) и файла-ресурса (.cpp). Всё находится в (под)папке Source вашего проекта. Вы должны увидеть файлы в выбранной IDE: Заметим, что вам, возможно, надо будет перекомпилировать проект и/или перезапустить редактор после этого. Не пугайтесь некоторых возможных ошибок, ещё раз соберите IDE-проект, скомпилируйте и запустите вновь. Наполнение соответствующих файлов должно выглядеть так: MyMechanicalActor.h: // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "MechanicalActor.h" #include "MyMechanicalActor.generated.h" /** * */ UCLASS() class MY_API AMyMechanicalActor : public AMechanicalActor { GENERATED_BODY() }; MyMechanicalActor.cpp: // Fill out your copyright notice in the Description page of Project Settings. #include "MyMechanicalActor.h" Теперь вы можете перегрузить один (или несколько) Tick-методов и реализовать вашу механику, как обычно это делается в C++… … в заголовочном файле: void Tick(float DeltaTime) override; … в .cpp-файле: void AMyMechanicalActor::Tick(float DeltaTime) { // Ваш код механики } Можете создать Фильтр, чтобы собрать цепь Чанков/Ремней и итерироваться по ним. ru/toolworks/docs/apparatus/mechanical.txt Последнее изменение: 2022/01/05 16:32 — jispar