Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 154
DanzigFun писал(а):
Абстрактные классы на то и абстрактные - они нигде не фигурируют вообще и не могут физически этого делать ))


Поэтому я и уточнил про них)


Snake,
Ну в таком случае я бы делал иерархию классов для "UGraphicSettings" и "USaveObject" с общим классом для них. И классы конфигов. Например:

-MyObject
--UGraphicSettings
--USaveObject

-MyConfig
--UGraphicConfig
--USaveObjectConfig

а потом уже в переменных этих классов "UGraphicSettings" и "USaveObject" указывал в качестве конфига соотв "UGraphicConfig" и "USaveObjectConfig"
Аватара пользователя
Пользователь
Сообщения: 2319
и в каждом вручную указать какой массив использовать... хм...
я так и собирался делать, но мне показалось что-то нелогично, я уже запутался, и даже не могу понять что конкретно показалось нелогичным.

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

в идеале вообще что-то типа:


но такое естественно не работает...
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 2319
и еще вопрос)
в проекте создается одна папка под С++ классы без возможности создавать в ней вложенные папки.
Каким образом в понятном виде хранить множество ++ класов если они сваленны в одну папку?
нет проблем когда их 10-20
но когда их станет 100, это будет жестко искать там один нужный класс.
Как организовывается все это дело.

ПС: и в случае чего не стеснятейсь указывать если я какую-то чушь пишу :) а то я могу, да)
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 429
Я оперировал сотней классов в Ботологии )))
Выходил из положения именованием классов.
Есть некий базовый класс, его наследник несет часть имени родителя и через постфикс второе имя, например.
OS_Character, его наследник OS_Character_MOB и OS_Character_Player, потом OS_Character_MOB_Engeneer так далее.
Имена классов становятся длиннее, но если придумать именование абривиатурами то можно его сократить. К томуже вложения не бывают глубокими, или нужно придумать так чтобы не было сильно больших вложений чтобы имена не были очень большими.

ТОгда классы располагаются рядом, система именования понятна, расположение классов в алфавитном порядке.
Аватара пользователя
Пользователь
Сообщения: 429
Тут вроде говорится о возможности переброски вручную классов из папки в подпапку:
https://answers.unrealengine.com/questi ... oject.html
Аватара пользователя
Пользователь
Сообщения: 2319
DanzigFun , ну я смотрю что в VS можно организоваться, это в редакторе никак не отбражается конечно, но тем не менее уже немало.
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 154
Легко все делается, например в одном из моих модулей вот так все организовано:
Изображение

если вы перемещаете файл в подпапку, то подключать заголовочный файл необходимо

Код:
#include "[Ваша подпапка]\имя хедера"


а если хотите как и прежде напрямую подключать, то необходимо добавлять в Builds.cs строки PrivateIncludePaths и PublicIncludePaths
К примеру я хочу добавить Private папку моего модуля:
Код:
     PrivateIncludePaths.AddRange( new string[] { "RidersUMG/Private" });


тогда можно использовать хедер без указания подпапки.


а вот так в проекте
Изображение
Аватара пользователя
Пользователь
Сообщения: 2319
WssIDs, спасибо. А в анриал-едиторе отображаются эти папки?
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 154
Да, но если класс не является UCLASS тогда он не будет отображаться в редакторе.


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

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