====== 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が… * 「プリミティブ型」の場合 * meta=(Arg="デフォルト値") * 「ユーザー定義型」の場合 * meta=(AutoCreateRefTerm="Arg") ※多分VarTypeのデフォルトコンストラクタを指定した事になる ===== Blueprint ===== ===== misc ===== ==== DataTableでFNameのデータが途中で切れて正しくインポートされない ==== データが英数字のみで構成されており、かつ _ - + . / : の何れかの文字を含むと、その文字の場所でデータが切れる事がある。FNameの制限というか仕様?っぽい。 正しくインポートするには三重ダブルクオーテーションで囲む必要がある。 詳しい条件はソースコードのそれっぽい所を参照の事(当該箇所を明示して良いのかわからんので一応伏せておく)。NamePropertyを作ってる場所なのでDataTableに限らずアセットに含まれる全てのFNameに当てはまりそうな気がする…