programming:ue4_memo

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

programming:ue4_memo [2016-03-28 22:41]
Decomo 作成
programming:ue4_memo [2016-03-28 23:04] (現在)
Decomo
行 8: 行 8:
  
 ''APlayerController::ConsoleCommand''関数で文字列リテラルのコンソールコマンドを実行することができる。 ''APlayerController::ConsoleCommand''関数で文字列リテラルのコンソールコマンドを実行することができる。
 +
 +==== コンパイル時「Function parameter: 'Param' conflicts with previously defined field in 'ClassName'」と怒られる ====
 +
 +UFUNCTIONの仮引数名''Param''と、そのUFUNCTIONを定義しているクラスまたは親クラス''ClassName''のメンバ変数名が被っていると表題のように怒られる。
 +
 +UFUNCTIONをメンバ変数より後ろで宣言すると、なぜかエラーは解消する。
 +
 +<code c++>
 +class NG
 +{
 +    UPROPERTY()
 +    FString Hoge;
 +
 +    UFUNCTION()
 +    void SetHoge(FString Hoge); // ここでビルドエラー
 +};
 + 
 +class OK
 +{
 +    UFUNCTION()
 +    void SetHoge(FString Hoge); // なぜか通る
 +
 +    UPROPERTY()
 +    FString Hoge;
 +};
 +</code>
 +
 +==== UFUNCTIONにデフォルト引数を持たせる ====
 +
 +UFUNCTIONのmetaでデフォルト引数が設定できる。''void Func(VarType Arg)''という関数があったとして、VarTypeが…
 +  * 「プリミティブ型」の場合
 +    * meta=(Arg="デフォルト値")
 +  * 「ユーザー定義型」の場合
 +    * meta=(AutoCreateRefTerm="Arg") ※多分VarTypeのデフォルトコンストラクタを指定した事になる
 +
  
 ===== Blueprint ===== ===== Blueprint =====
 +
 +===== misc =====
 +
 +==== DataTableでFNameのデータが途中で切れて正しくインポートされない ====
 +
 +データが英数字のみで構成されており、かつ _ - + . / : の何れかの文字を含むと、その文字の場所でデータが切れる事がある。FNameの制限というか仕様?っぽい。
 +
 +正しくインポートするには三重ダブルクオーテーションで囲む必要がある。
 +
 +詳しい条件はソースコードのそれっぽい所を参照の事(当該箇所を明示して良いのかわからんので一応伏せておく)。NamePropertyを作ってる場所なのでDataTableに限らずアセットに含まれる全てのFNameに当てはまりそうな気がする…
  
  • programming/ue4_memo.1459172464.txt.gz
  • 最終更新: 2016-03-28 22:41
  • by Decomo