アヒルのある日

株式会社AHIRUの社員ブログです。毎週更新!社員が自由に思いついたことを書きます。

UEでICUを利用するために

こんにちは!

最近VRと魚をさばくことにはまっている、ふるいプログラマーです。

VR等の話は次回するとして…今回はUEのお話です。

ICUという、Unicode系の操作が可能なライブラリが存在しているのですが、Unrealでも内部的に使用されています。

ICUを有効にするために、モジュールの参照を追加してみます。

MyProject.Build.cs

            PublicDependencyModuleNames.AddRange(
                new string[] { "icu" }
                );

この状態でICUのヘッダーをインクルードすると…

ヘッダーが定義されていないとエラーが出ます。

UE内部のコードを追っていくと、UE_ENABLE_ICU という定数定義にたどりつきます。

名前的にもそれっぽいですよね。

この定数を有効値にするためには、Target.bCompileICU を参照しているので、以下のように記載してあげます。

MyProject.Target.cs

    public MyProjectTarget(TargetInfo Target) : base(Target)
    {
        bCompileICU = true;
    }

これで、晴れてICUの unicode/XXX.h をインクルードできます!!

結論: UnrealEngineのプロジェクトでICUを利用するためには…

ICUのモジュール参照を追加したうえで、bCompileICUを有効にしましょう。

駆け足になってしまいましたが、今回はこのあたりでー(@^^)/~~~

*UE5.4.2での動作になります。