前に作ったプロジェクトのコードを再利用する手順
とりあえずモジュールのクラスを継承するとこまではできたのでメモをあげる
おkっぽい方法
本当にうまくいくかはわからないし、やるべきでないことをやっているかもしれないし、やらなくていいことをやっているかも知れない
再利用する(新しくモジュールにする)プロジェクトの名前 : <ModuleName>
次のプロジェクトの名前 : <GameName>
とする
・Unreal Projects\<ModuleName>\Source\<ModuleName>フォルダをUnreal Projects\<GameName>\Sourceフォルダの下に配置
・(やらなくていいかも)<ModuleName>.hの内容に
#include "Engine.h"
#include "Runtime/Engine/Private/EnginePrivate.h"
#include "<ModuleName>.h"
を追加(というか変更)
・<ModuleName>.cppの
IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, <ModuleName>, "<ModuleName>");
を
IMPLEMENT_GAME_MODULE(FDefaultGameModuleImpl, <ModuleName>);
に変更
・<GameName>.uprojectの
"Modules": [
{
"Name": "<GameName>",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
を
"Modules": [
{
"Name": "<GameName>",
"Type": "Runtime",
"LoadingPhase": "Default"
},
{
"Name": "<ModuleName>",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
に変更
・(やらなくていいかも)Unreal Projects\<GameName>\Source\<GameName>.Target.csと<GameName>Editor.Target.csの
OutExtraModuleNames.AddRange(new string[] { "<GameName>" });
を
OutExtraModuleNames.AddRange(new string[] { "<GameName>", "<ModuleName>" });
に変更
・<GameName>.Build.csの
PublicDependencyModuleNames.AddRange(new string[] { ~ });
を
PrivateDependencyModuleNames.AddRange(new string[] { <ModuleName> });
に変更(修正2014/11/8)
・(上とどっちかはやらなくていいかも)<GameName>.Build.csの
PrivateDependencyModuleNames.AddRange(new string[] { });
を
PrivateDependencyModuleNames.AddRange(new string[] { ~, <ModuleName> });
に変更(修正2014/11/8)
・Unreal Projects\<GameName>にある<GameName>.uprojectを右クリックして「Generate Visual Studio~」を実行
・VisualStudioでリビルド
VSのソリューションエクスプローラから<GameName>を選んでリビルド->普通にビルドのほうが速いかも
以上でいけると思う