シーン内の特定のGameObjectを参照しているステートを検索する方法について

Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
  • We can not answer your questions about your project specific issues.
  • We can not answer your questions on Unity's specification issues.
  • Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。
  • Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。

Forum rules
Here is the forum to do the questions about how to use to Arbor developer.
Attention point:
  • We can not answer your questions about your project specific issues.
  • We can not answer your questions on Unity's specification issues.
  • Please check Arbor Documentation and ask a question if you still don't know how to use it. If the desired function is not described in the document, it is highly possible that the function does not exist from the beginning, so go to the request forum.

ここは、Arbor開発者へ使い方に関する質問を行うフォーラムです。
注意点:
  • ユーザー様のプロジェクトの仕様上の問題や設計に対する質問には答えられません。
  • Unityの仕様上の問題に対する質問には答えられません。
  • Arbor Documentationを確認の上、それでも使い方がわからない場合にご質問ください。欲しい機能の記載がドキュメントにない場合は機能が元から存在しない可能性が高いので要望フォーラムへ。
thorikawa
Posts: 10
Joined: 2019/05/21 10:14

シーン内の特定のGameObjectを参照しているステートを検索する方法について

Post by thorikawa »

あるシーン内の特定のGameObjectを参照しているステートを検索する方法はありませんでしょうか?

背景を説明させていただきますと、ActivateGameObjectを使い、GameObjectのenable/disableを切り替えている箇所がいくつかあるのですが、本来disableになっているべきところでenableになってしまっていることがあり、どこか自分の見落としているステートが悪さをしているのではないかと思っています。現状一つのシーンに10〜20のArborFSM、一つのFSM内に100以上のステートがあり、人の目で探していくのが困難であるため、自動で検索できたらよいなと思っています。

もしよい方法があればご教示ください。

よろしくお願い致します。
User avatar
caitsithware
管理人
Posts: 495
Joined: 2015/08/17 12:41

Re: シーン内の特定のGameObjectを参照しているステートを検索する方法について

Post by caitsithware »

thorikawa wrote: 2019/05/21 10:26 あるシーン内の特定のGameObjectを参照しているステートを検索する方法はありませんでしょうか?
直接、特定のGameObjectで検索する方法はございません。
理由としては、C#の仕様上クラス定義によらずフィールドを無理やり列挙するにはReflectionという特殊な手法を用いなければできないためです。
特に重要な機能でない限り今後実装する予定もありませんのでご了承ください。
thorikawa wrote: 2019/05/21 10:26 背景を説明させていただきますと、ActivateGameObjectを使い、GameObjectのenable/disableを切り替えている箇所がいくつかあるのですが、本来disableになっているべきところでenableになってしまっていることがあり、どこか自分の見落としているステートが悪さをしているのではないかと思っています。現状一つのシーンに10〜20のArborFSM、一つのFSM内に100以上のステートがあり、人の目で探していくのが困難であるため、自動で検索できたらよいなと思っています。
例えば、以下のような方法で確認してみてはいかがでしょうか。
  • Hierarchyの検索で、検索ワードを「ArborFSM」にする。
    (確実に特定型のみ検索したい場合は虫眼鏡アイコンをクリックし種類を「Type」にする)
  • 列挙されたArborFSMオブジェクトを、一つずつ検索。
    • ArborEditorウィンドウのサイドパネルを開き、ノードリストの検索で、検索ワードを「ActivateGameObject」にする
      (確実に特定型のみ検索したい場合は虫眼鏡アイコンをクリックし種類を「Type」にする)
    • 列挙されたノードをそれぞれ選択し目視で確認。
これも量が多く大変そうでしたら、ご自身で検索スクリプトを書いたほうが早いかもしれません。
User avatar
caitsithware
管理人
Posts: 495
Joined: 2015/08/17 12:41

Re: シーン内の特定のGameObjectを参照しているステートを検索する方法について

Post by caitsithware »

追記ですが、
参照検索のランタイム実行にこだわらなくてよければ、Reflectionを使わずにUnityEditorのSerializedObjectでもできますね。
ただ、どちらにしても参照を逆にたどるのはUnityの仕様上大変(結局全NodeGraphの全コンポーネント走査することになる)なので、Arbor本体の機能としては今後も実装しないかと思います。
thorikawa
Posts: 10
Joined: 2019/05/21 10:14

Re: シーン内の特定のGameObjectを参照しているステートを検索する方法について

Post by thorikawa »

返信頂きありがとうございます。内容承知致しました。
ArborFSMのグラフ内でType検索できることも初めてしりましたので一旦はそちらの方法で解決を試みてみます。
よろしくお願い致します。
Post Reply