ヒマがあるならゲームつくってね

こんなとこ見てないでゲームをつくろう

UE4:BPマクロ/関数の入力でPass-by-Reference利用時の注意

UE4.8.3でBPのIncremenIntノードのOutputs変数Resultの値がなぜか期待する値より1多いので調べたところ、どうも入力に参照渡し(Pass-by-Reference有効)を利用して中で値を変更する場合、値の評価順序が感覚的に思っている順になっていませんでした。
バグでは無いならば、マクロ/関数の入力でPass-by-Referenceを利用して中で値を変更する場合は注意が必要です。

  • 「IncrementIntノード」のResultは1多い値が返る。ちなみに「DecrementIntノード」は-1されないので、UE4.8.3時点で共にバグってる。

f:id:siu3:20150813154652p:plain:w200

  • マクロまたは関数のInputsで指定した変数のプロパティーPass-by-Referenceを有効にすると参照渡しになる。

f:id:siu3:20150813154918p:plain:w200

  • :入力In Intの変数が+1された後、その変数の値を+1した値を出力Out Intから返す。「加算ノード」は「Set Integer(byRefn)ノード」時と「Outputノード」時の2回別々に呼ばれているみたい。

f:id:siu3:20150813154700p:plain:w400

  • :入力In Intの変数が+1された後、その変数の値を出力Out Intから返す

f:id:siu3:20150813154655p:plain:w400