<前文>
で勉強しています。
今回は、「8章17節 新しいコンソールコマンドを作成する」を勉強します。
***このブログは、このブログの読者が、教科書(Unreal Engine 4 Scripting with C++)を読んでいる前提で書かれています。この教科書を読まないで、このブログを読んでも理解不可能であると考えられます。ご了承ください。***
今回、体調を崩してしまい、途中までしか出来ませんでした。残りは、来週行います。
<本文>
<目的>
今回は、新しいコンソールコマンドを作成します。
<方法>
今回からは、方法でも、教科書のHow to do it…からの引用とその訳は、枠で区別して表示します。
Step 0.
今回は、プロジェクトの別名保存はしません。前回のプロジェクトを、そのまま使用します。
Step 1.
以下に示すように、私のEdiorModuleクラスであるFUE4CookookEditorModuleクラスのヘッダーファイルに、IConsoleCommand* DisplayTestCommand; とIConsoleCommand* DisplayUserSpecifiedWindow; を加えました。
Step 2.
以下に示しように、私のEdiorModuleクラスであるFUE4CookookEditorModuleクラスのソースファイル内の関数、StartupModuleに、上記のコードを足しました。(実際は、Packet Publish社の提供するサンプルコードにあるUE4CookbookEditor.cppファイルのStartupModule関数内に同様のコードがあるので、カット&ペーストしました。)
DIsplayWindow()がエラー表示になっていますが、とりあえず無視しておきます。
Step 3.
以下に示すように、コードを、教科書に忠実な形で、加えました。Packet Publish社の提供するサンプルコードでは、if節がなかったです。DisplayTestCommnadオブジェクト変数と、DisplayUserSpecifiedWindowオブジェクト変数が、ShutdownModule関数に来た途端、なくなってしまう可能性はないと思うので、if節でチェックする教科書のやり方は、慎重すぎると思いますが、とりあえず、教科書のやり方に従います。
Step 4.
以下のように、加えました。
まず、EditorModule.hファイルに、DisplayWindow関数の宣言をして、
DisplayWindow関数の実装をEditorModule.cppファイルに書きました。
教科書も、Packet Publish社の提供するサンプルコードでも、DisplayWindow関数の実装をEdiorModuleクラスのヘッダーファイルで行っています。特別な理由は、ないはずです。基本通りに、関数の宣言はヘッダーファイル、実装はソースファイルで行きます。
後、step2で表示されていたエラーも消えました。
<結果>
Step 5.
Visual Studio側から、buildを実行しました。
成功しました。
Visual Studio側からエディターを実行します。
UE4エディターは普通に実行しました。
Step 6.
しました。
Step 7.
DisplayTestCommandWindowをタイプしました。タイプの途中で既に、DisplayTestCommandWindowが単語の候補に挙げられています。
Step 8.
Test Command Windowが表示されました。
<まとめ>
今回は、ここまでしか出来ませんでした。来週、考察を行います。