Table of Contents

Деталь

Детали - это главные строительные блоки в Apparatus-е. Это высокоуровневые сущности (в отличие от трейтов), которые поддерживают некоторую дополнительную ECS+ функциональность, например, мульти-итерацию и наследование.

Детали наследуются от класса UObject и являются субъектом сборщика мусора и Unreal-овской модели памяти (в то время как трейты используют собственную организацию памяти).

Если надо изменить какие-то составляющие детали, то достаточно обратиться к ним напрямую через оператор обращения к полю → или не-const метод самой детали. Нету нужды копировать данные детали, применять к ним изменения и устанавливать в сущностный объект.

В качестве оптимизации для некоторой внутренней логики детали не могут быть легко удалены с сущностных объектов. Они могут быть только выключенными, т.е. disabled. По сути это то же самое, что и удаление, потому что фильтры следят за состоянием enabled/disabled у детали в контексте отбора сущностей для оперирования.

Создание деталей

Используя C++

Чтобы создать деталь, видимую в вашем C++ коде, вам следует сделать следующее:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include «CoreMinimal.h» #include «Detail.h» #include «MyDetail.generated.h» UCLASS() class ME_API UMyDetail : public UDetail {

GENERATED_BODY()

}; </code>

// Fill out your copyright notice in the Description page of Project Settings.

#include «MyDetail.h»

</code>

float X = 0; float Y = 0; </code>

UPROPERTY(BlueprintReadWrite, EditAnywhere) float X = 0;

UPROPERTY(BlueprintReadWrite, EditAnywhere) float Y = 0; </code>