注意点について
モジュールを分割したときの注意点をメモしてみました。
別のモジュールで呼び出すとき
XX_APIとクラスやメソッドの前につけてください。
Class.h
class XX_API Name
{
:
};
namespace内のメソッドなら
Foo.h
namespace Name
{
XX_API void Function();
};
こうしないと別のモジュール側で使用できません。
(別のモジュールで使用しない場合は必要ありません)
BPに公開済みのクラス
UPROPERTYで公開された値をBP側で変えているとき、
モジュールの移動によってその値がリセットされます。
※回避方法については後述
BPに公開済みのメソッド
UFUNCTIONで公開されたBP側で使用しているメソッドが呼べなくなります。
それぞれの解決方法
DefaultEngine.ini
[/Script/Engine.Engine]
+ActiveClassRedirects=(OldClassName="/Script/OldModuleName.ClassName", NewClassName="/Script/NewModuleName.ClassName")
上記を追加してください。
モジュール名とクラス名をそれぞれ書くことでリダイレクタされます。
まとめ
新規作成ではなくクラスを移動させるときは、リダイレクタさせましょう。
うっかり全て設定し直しにならないよう注意です。