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時点で共にバグってる。
- マクロまたは関数のInputsで指定した変数のプロパティーPass-by-Referenceを有効にすると参照渡しになる。
- 誤:入力In Intの変数が+1された後、その変数の値を+1した値を出力Out Intから返す。「加算ノード」は「Set Integer(byRefn)ノード」時と「Outputノード」時の2回別々に呼ばれているみたい。
- 正:入力In Intの変数が+1された後、その変数の値を出力Out Intから返す