目次

UE4メモ

Unreal Engine 4に関するメモ書き。

ネイティブ

C++から文字列のコンソールコマンドを実行する

APlayerController::ConsoleCommand関数で文字列リテラルのコンソールコマンドを実行することができる。

コンパイル時「Function parameter: 'Param' conflicts with previously defined field in 'ClassName'」と怒られる

UFUNCTIONの仮引数名Paramと、そのUFUNCTIONを定義しているクラスまたは親クラスClassNameのメンバ変数名が被っていると表題のように怒られる。

UFUNCTIONをメンバ変数より後ろで宣言すると、なぜかエラーは解消する。

class NG
{
    UPROPERTY()
    FString Hoge;
 
    UFUNCTION()
    void SetHoge(FString Hoge); // ここでビルドエラー
};
 
class OK
{
    UFUNCTION()
    void SetHoge(FString Hoge); // なぜか通る
 
    UPROPERTY()
    FString Hoge;
};

UFUNCTIONにデフォルト引数を持たせる

UFUNCTIONのmetaでデフォルト引数が設定できる。void Func(VarType Arg)という関数があったとして、VarTypeが…

Blueprint

misc

DataTableでFNameのデータが途中で切れて正しくインポートされない

データが英数字のみで構成されており、かつ _ - + . / : の何れかの文字を含むと、その文字の場所でデータが切れる事がある。FNameの制限というか仕様?っぽい。

正しくインポートするには三重ダブルクオーテーションで囲む必要がある。

詳しい条件はソースコードのそれっぽい所を参照の事(当該箇所を明示して良いのかわからんので一応伏せておく)。NamePropertyを作ってる場所なのでDataTableに限らずアセットに含まれる全てのFNameに当てはまりそうな気がする…