UE4 создает новый класс игрового режима C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 UE4 создает новый класс игрового режима C++

Сообщение Anonymous »

Я определяю класс в заголовочном файле. Это наследование от другого класса с именем AGameMode. В редакторе я создаю новый класс из Gamemode, и он автоматически генерирует файлы .h и .cpp. Проблема в том, что я уже включил необходимые файлы заголовков, но все еще не вижу класс, который хочу от него унаследовать. Вместо этого мне выдает ошибку. Позвольте мне объяснить с помощью кода:

Код: Выделить всё

//ACollectorMan_GameMode.h

#include "CoreMinimal.h"
#include "GameFramework/GameMode.h"
#include "CollectorMan_GameMode.generated.h"

UCLASS()
class MYPROJECT2_API ACollectorMan_GameMode : public AGameMode
{
GENERATED_BODY()
ACollectorMan_GameMode();
}
когда я объявляю конструктор и компилирую его, он показывает ошибку. Но если я не объявлю это, в строке редактора 7 (класс MYPROJECT2_API ACollectorMan_GameMode: public AGameMode) не будет выдаваться ошибка (все равно будет красная).
Это не только для родительского класса Gamemode. У классов персонажей или пешек та же проблема. Когда я собираю VS, выдает мне эту ошибку:

Код: Выделить всё

CollectorMan_GameMode.cpp.obj : error LNK2019: unresolved external symbol "private: __cdecl ACollectorMan_GameMode::ACollectorMan_GameMode(void)" (??0ACollectorMan_GameMode@@AEAA@XZ) referenced in function "public: static void __cdecl ACollectorMan_GameMode::__DefaultConstructor(class FObjectInitializer const &)" (?__DefaultConstructor@ACollectorMan_GameMode@@SAXAEBVFObjectInitializer@@@Z)

CollectorMan_GameMode.gen.cpp.obj : error LNK2001: unresolved external symbol "private: __cdecl ACollectorMan_GameMode::ACollectorMan_GameMode(void)" (??0ACollectorMan_GameMode@@AEAA@XZ)
Это должна быть проблема с компоновщиком, однако файл GameMode.h доступен по адресу GameFramework/GameMode.h. Могу показать вам похожий файл. Но это работает. Вот пример:

Код: Выделить всё

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyProject2GameMode.generated.h"

UCLASS()
class AMyProject2GameMode : public AGameModeBase
{
GENERATED_BODY()
AMyProject2GameMode();
};
Это все, что я говорю.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/624 ... mode-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»