メンバー呼び出し
任意の型のメンバーを呼び出す方法について説明します。
ここでは例としてArborFSMでの使用を想定して解説します。
InvokeMethod
メソッドの呼び出しや、フィールドやプロパティに値を設定します。
リファレンス : InvokeMethod
InvokeMethodの追加
- ステートの歯車アイコンをクリックし「挙動追加」を選択。
- 「Events / InvokeMethod」を選択。
InvokeMethodの設定
- 「Add New Event Type」ボタンをクリックし、呼び出したいタイミングを選択。
- イベントの「+」アイコンをクリックしてメンバー呼び出しデータを追加。
- 呼び出したい型とメンバーを設定。
- <Target>を設定。
- UnityオブジェクトであればFlexibleFieldで設定可能。
- それ以外の型の場合はデータフローからの入力により受付。
- staticメンバーの場合は設定項目なし。
- 引数の値を設定。
GetValue演算ノード
フィールドやプロパティの値を取得し、データフローに出力します。
リファレンス : GetValue
GetValueの追加
- グラフ上を右クリックし、「演算ノード作成」を選択。
- 「Events / GetValue」を選択。
GetValueの設定
- 型とメンバーを設定。
- <Target>を設定。
- UnityオブジェクトであればFlexibleFieldで設定可能。
- それ以外の型の場合はデータフローからの入力により受付。
- staticメンバーの場合は設定項目なし。
- 値の出力スロットを接続。
リファクタリング
呼び出す型やメンバーの名前を変更したい場合、RenamedFrom属性を使用して新しい名前を以前の名前と関連付けすることで、参照切れを防げます。
|
|
以前の名前には名前空間を含める必要があります。
上記の例などグローバル名前空間に定義している場合は必要ありません。
マネージコードストリッピング
メンバー呼び出しはReflectionを使用して呼び出しているため、マネージコードストリッピングの設定によって呼び出し先メンバーが未使用コードとして削除されてしまう可能性があります。
Preserve属性やlink.xmlファイルを設定して呼び出し先コードが削除されないように設定してください。
詳しくは、Unityマニュアルのマネージコードストリッピングを参照してください。