Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 2319
и еще вопрос: как сделать так чтоб в переменной нельзя было указать себя (свой класс и тд.)?
а то жестко рекурсия может получиться:
Изображение
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
и еще вопрос на эту же тему переменных-инстансов на этапе идеи:
по такой логике я могу создать компонент который может содержать другие компоненты?
хм... с ними чуть все сложней будет... иерархию не порегулируешь как в акторе... и еще мождет какие неочевидные вещи...

и я правда еще убедился что все будет работать как только создастся обьект с такими переменными, будут ли они сразу же полнофункциональны .
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 154
А чтобы не было рекурсии лучше использовать переменную в классе, который не будет использоваться в роли инстанса. Например, так:

Код:
UCLASS()
class RIDERS_API UMyObjectComponent : public UObject
{
   GENERATED_BODY()

      UMyObjectComponent();

   UPROPERTY(EditDefaultsOnly, Instanced, BlueprintReadWrite, Category = "Test")
      TArray<UMyConfig*> Test;
};

UCLASS(abstract,EditInlineNew)
class RIDERS_API UMyConfig : public UObject
{
   GENERATED_BODY()

      UMyConfig();
};


UCLASS()
class RIDERS_API UGraphicSettings : public UMyConfig
{
   GENERATED_BODY()

      UGraphicSettings();
};

UCLASS()
class RIDERS_API USaveSettings : public UMyConfig
{
   GENERATED_BODY()

      USaveSettings();
};
Аватара пользователя
Пользователь
Сообщения: 2319
я специяльно сделал чтоб можно было конфиг любой глубины сделать по сути этот как иерархия у компонентов актора.

Код:
конфиг:

UCLASS(Blueprintable, BlueprintType, abstract, EditInlineNew)
class AMAZINGGAME_API UObjectConfig : public UMyObject
{
   GENERATED_BODY()

};

и его наследник:

UCLASS(Blueprintable, BlueprintType, abstract, meta = (BlueprintSpawnableComponent))
class AMAZINGGAME_API USubObjectConfig : public UObjectConfig
{
   GENERATED_BODY()
   public:
      UPROPERTY(EditAnywhere, BlueprintReadWrite, Instanced, Category = "Config")
      TArray<UObjectConfig*> Config;
};

два класса один с субконфигом, другой просто конфиг.
тоесть я могу в конфиг внутрь вложить другой конфиг или даже конфиг с кофигом, и если нужно внутрь могу еще вложить и тд.
абсолютно аналогично как иерархия в акторе получается,
только вот когда сам в себя владывается в рекурсию уходит...
уже даже на практике опробовал, очень удобно получается. если б еще динамически класс обьектов в массиве переопределялся (то что я хотел сделать страницей раньше) было бы вобще круто...
В общем - минимум классов максиму кастомизации.
пример:
Изображение
жаль что все конфиги в одну кучу в меню... но если сильно нужно чтоб в меню ничего лишнего не было тогда отдельным классом создавать.
_________________
we need to go deeper
Последний раз редактировалось Snake 09 июл 2017, 11:54, всего редактировалось 1 раз.
Аватара пользователя
Пользователь
Сообщения: 2319
есть ли возможность у уОбжекта получить владельца? getOuter()? getOwner()? из принтов или С++?
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 429
Судя по этому нет.

https://docs.unrealengine.com/latest/IN ... index.html

Скорее всего от AActor идет Owner
Аватара пользователя
Пользователь
Сообщения: 2319
при "констракте" обжета требует указывать владельца (Outer), кажется немного странным что сам обьект не может знать кто им владеет, но в принципе это возможно конечно.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
что такое FObjectInitializer простыми словами?
https://docs.unrealengine.com/latest/IN ... index.html
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 429
Snake писал(а):
что такое FObjectInitializer простыми словами?
https://docs.unrealengine.com/latest/IN ... index.html

Судя по описанию это метод, который вызывается после окончания работы конструктора класса. Используется для инициализации переменных.
Аватара пользователя
Пользователь
Сообщения: 2319
Код:
virtual void PostEditChangeProperty(FPropertyChangedEvent & PropertyChangedEvent) override;

есть ивент когда меняется перменная в уОбжекте, и его можно переопределить...
https://docs.unrealengine.com/latest/IN ... index.html
то-есть можно менть УПроперти на нем...
_________________
we need to go deeper


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница