UE4引擎插件制作遇到的问题(一)

30 篇文章 3 订阅
22 篇文章 11 订阅

大家好,我叫人宅

加载自己做的引擎插件报错

PrimaryGameModuleCouldntBeLoaded", "The game module '{0}' could not be loaded. There may be an operating system error or the module may not be properly set up.

先讲解一下关于加载的简单流程:

在UE4加载引擎的71%-75%区间开始加载我们的插件。也就是引擎预初始化的时候。
int32 EnginePreInit( const TCHAR* CmdLine )
{
 int32 ErrorLevel = GEngineLoop.PreInit( CmdLine );
 return( ErrorLevel );
}

int32 FEngineLoop::PreInit( const TCHAR* CmdLine )

{

...

if ( !LoadStartupModules() ) // 引擎加载到71%- 75%
 {
  // At least one startup module failed to load, return 1 to indicate an error
  return 1;
 }

...

}

//开始加载插件

bool FProjectManager::LoadModulesForProject( const ELoadingPhase::Type LoadingPhase )

{

...

//加载

FModuleDescriptor::LoadModulesForPhase(LoadingPhase, CurrentProject->Modules, ModuleLoadFailures);

...

}

这个时候出现了

首先要检查是不是加载 了该模块

在.uproject里面 在项目里面


 "Plugins": [
    {
      "Name": "MD_SqlTool",
      "Enabled": true
    },


如果确定没什么问题

再检查.uplugin 里面

    "Type": "Runtime",
    "LoadingPhase": "PreDefault"

PreDefault:是在引擎未加载Uobject时候开始加载该插件

一下是引擎源代码

bool FEngineLoop::LoadStartupModules()
{
 FScopedSlowTask SlowTask(3);
 SlowTask.EnterProgressFrame(1);
 // Load any modules that want to be loaded before default modules are loaded up.
 if (!IProjectManager::Get().LoadModulesForProject(ELoadingPhase::PreDefault) || !IPluginManager::Get().LoadModulesForEnabledPlugins(ELoadingPhase::PreDefault))
 {
  return false;
 }
 SlowTask.EnterProgressFrame(1);
 // Load modules that are configured to load in the default phase
 if (!IProjectManager::Get().LoadModulesForProject(ELoadingPhase::Default) || !IPluginManager::Get().LoadModulesForEnabledPlugins(ELoadingPhase::Default))
 {
  return false;
 }
 SlowTask.EnterProgressFrame(1);
 // Load any modules that want to be loaded after default modules are loaded up.
 if (!IProjectManager::Get().LoadModulesForProject(ELoadingPhase::PostDefault) || !IPluginManager::Get().LoadModulesForEnabledPlugins(ELoadingPhase::PostDefault))
 {
  return false;
 }
 return true;
}


如果关于插件制作商有什么问题欢迎留言:

如果对独立游戏感兴趣也可以 

http://www.aboutcg.org/course/tut_ue4programming_180119/



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值