このページの翻訳:
ソースの表示
最近の変更サイトマップ

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に当てはまりそうな気がする…

programming/ue4_memo.txt · 最終更新: 2016-03-28 14:04 by Decomo
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0