Enum型への対応

ここは、Arbor開発者への要望を行うためのフォーラムです。

This is a forum for requesting Arbor developers.
kag
Posts: 24
Joined: 2017/05/19 08:28

Enum型への対応

Post by kag » 2018/11/29 02:16

先日はお世話になりました。
ParameterConatinerのEnum型を使うために、いくつか拡張してほしいStateがあります。

・SendMessageGameObject
 引数にEnum型を渡せるようにしてほしい。
 ※できれば、他にもParameterContainerで使える型にも対応してほしい

・CalcParameter
 EnumでもAdd的な機能がほしい。
 その場合、Enum範囲を超えないように自動的にループやリミットしてほしい。
 ※Intの場合、Add:1やAdd:-1として、受け取る側で範囲チェックしてループやリミットをかけ、キャストして使っています。

ひとまず、IntからEnumに変更しようとしたら詰まってしまったもので。
ご検討よろしくお願いします。

User avatar
caitsithware
管理人
Posts: 247
Joined: 2015/08/17 12:41

Re: Enum型への対応

Post by caitsithware » 2018/11/29 10:27

ご要望ありがとうございます。
kag wrote:
2018/11/29 02:16
・SendMessageGameObject
 引数にEnum型を渡せるようにしてほしい。
 ※できれば、他にもParameterContainerで使える型にも対応してほしい
SendMessageGameObjectやSendMessageUpwardsGameObject、BroadcastMessageGameObjectあたりについてですね。
検討いたします。

また、SendMessageGameObjectにつきましては、より高機能なInvokeMethodもあります。
こちらはEnum引数の対応だけでなくoutやref引数、戻り値の出力などにも対応しております。
もしよろしければInvokeMethodも使用してみてください。

Arborリファレンス : InvokeMethod
kag wrote:
2018/11/29 02:16
・CalcParameter
 EnumでもAdd的な機能がほしい。
 その場合、Enum範囲を超えないように自動的にループやリミットしてほしい。
 ※Intの場合、Add:1やAdd:-1として、受け取る側で範囲チェックしてループやリミットをかけ、キャストして使っています。
こちらにつきましては、Arborの組み込み処理として対応するべきかどうか悩ましいですね。
本来enum型は加減算などの数値演算しないのが一般的であり、必ずenumの値が連続しているとも限らないため、意図しない問題を引き起こしかねません。
また、ループやリミットについてどちらを行いたいかも含めて考えると、kag様のプロジェクト固有の仕様に依存した問題のように思います。
パラメータを初めからIntにするか、どうしてもenum型の加減算が必要であれば演算ノードやStateBehaviourを自作してみてはいかがでしょうか。

Arborマニュアル : 演算ノード
Arborマニュアル : StateBehaviour

Post Reply