Модуль Unreal Engine 4 Blank

Я пытаюсь приступить к разработке нереального движка 4, начиная с пустого модуля для начинающих, но с самого начала нажимая на блок.

Учебник, который я прошел для неигрового модуля: https://wiki.unrealengine.com/An_Int…to_UE4_Plugins. Я попытался перейти к исходному тексту, а затем изменить все до TestPlugin (так как я не смог заставить его работать с помощью учебника).

По какой-то причине, всякий раз, когда я пытаюсь активировать модуль в редакторе, я получаю «Не могу найти модуль« Модуль »». Я пытаюсь выяснить, пропустил ли я что-то, вот код, который у меня есть:

../Engine/Plugins/TestPlugin/TestPlugin.uplugin

{
"FileVersion" : 3,

"FriendlyName" : "Test Plugin",
"Version" : 1,
"VersionName": "1.0",
"EngineVersion" : 1579795,
"Description" : "Description goes here",
"Category" : "Test.Module",
"CreatedBy" : "arhon",
"CreatedByURL" : "http://stackoverflowcom",
"CanContainContent" : "true",

"Modules" :
[
{
"Name" : "Module",
"Type" : "Developer",
"LoadingPhase" : "PreDefault"}
]
}

../Engine/Plugins/TestPlugin/Source/TestPlugin/TestPlugin.cpp

 void FTestPlugin::StartupTestPlugin()
{
if (ITestPlugin::IsAvailable())
{
UE_LOG(TestPlugin, Log, TEXT("%s"), ITestPlugin::Get().IsThisNumber42(42) ? TEXT("True") : TEXT("False"));
UE_LOG(TestPlugin, Log, TEXT("%s"), ITestPlugin::Get().IsThisNumber42(12) ? TEXT("True") : TEXT("False"));
}
}

../Engine/Plugins/TestPlugin/Source/TestPlugin/TestPlugin.Build.cs

using UnrealBuildTool;

public class TestPlugin : ModuleRules
{
public TestPlugin(TargetInfo Target)
{
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

PrivateDependencyModuleNames.AddRange(new string[] { "TestPlugin" });

DynamicallyLoadedModuleNames.AddRange(new string[] { "StandAlone" });
}
}

../Engine/Plugins/TestPlugin/Source/TestPlugin/Public/ITestPlugin.h

#pragma once

#include "ModuleManager.h"/**
* The public interface to this module.  In most cases, this interface is only public to sibling modules
* within this plugin.
*/
class ITestPlugin : public ITestPluginInterface
{

public:

/**
* Singleton-like access to this module's interface.  This is just for convenience!
* Beware of calling this during the shutdown phase, though.  Your module might have been unloaded already.
*
* @return Returns singleton instance, loading the module on demand if needed
*/
static inline ITestPlugin& Get()
{
return FModuleManager::LoadModuleChecked< ITestPlugin >("TestPlugin");
}

/**
* Checks to see if this module is loaded and ready.  It is only valid to call Get() if IsAvailable() returns true.
*
* @return True if the module is loaded and ready to use
*/
static inline bool IsAvailable()
{
return FModuleManager::Get().IsModuleLoaded("TestPlugin");
}

virtual bool IsThisNumber42(int32 num) = 0;
};

../Engine/Plugins/TestPlugin/Source/TestPlugin/Private/TestPluginPrivatePCH.h

#include "ITestPlugin.h"
// You should place include statements to your module's private header files here.  You only need to
// add includes for headers that are used in most of your module's source files though.

../Engine/Plugins/TestPlugin/Source/TestPlugin/Private/TestPlugin.h

#pragma once

class TestPluginImpl : public ITestPlugin
{
public:
/** IModuleInterface implementation */
void StartupTestPlugin();
void ShutdownTestPlugin();

bool IsThisNumber42(int32 num);
};

../Engine/Plugins/TestPlugin/Source/TestPlugin/Private/TestPlugin.cpp

#include "TestPluginPrivatePCH.h"
#include "TestPlugin.h"
void TestPluginImpl::StartupTestPlugin()
{
}

void TestPluginImpl::ShutdownTestPlugin()
{
}

bool TestPluginImpl::IsThisNumber42(int32 num)
{
return num == 42;
}

IMPLEMENT_MODULE(TestPluginImpl, TestPlugin)

3

Решение

в .uplugin файл, посмотрите на название вашего модуля, затем в testplugin.cpp, посмотрите на эту строку:

IMPLEMENT_MODULE(TestPluginImpl, TestPlugin)

Я уверен, что они должны соответствовать.

например.:

"Modules" :
[
{
"Name" : "NebulaAudioAnalysisPlugin",
"Type" : "Runtime"}
]

и моя реализация выглядит так:

IMPLEMENT_MODULE(FNebulaAudioAnalysisPlugin, NebulaAudioAnalysisPlugin)

Я нашел все это трудным путем …

3

Другие решения


По вопросам рекламы [email protected]