【Unity】Inspectorの変更を検知する

  • |
【Unity】Inspectorの変更を検知する
   

この度やりたいことは、Inspector上で何かしらの値を変更した時に、GameObjectがそれに伴い反応をさせることです。
色を変更すれば、すぐに色が変わる。デフォルトで用意されているUIパーツでは実現ができているのですが、これを独自に実装をします。

Inspectorの変更を検知する

まずは、Inspector上の変更を検知します。
いろいろ調べた所、エディタ拡張をすれば実現ができそうでした。

エディタ拡張

OnInspectorGui()で、DrawDefaultInspector()を使えば判定ができます。


OnInspectorGUI

OnInspectorGUIはEditorクラスを継承して利用します。
OnInspectorGUIをInspectorをカスタマイズすることができます。

[エディタ拡張]についてはこちら。
第9章 CustomEditor

DrawDefaultInspector

DrawDefaultInspectorはカスタムInspectorにデフォルトのInspectorを表示させます。
コードを追っていくとデフォルトのInspector内で値の変更があればtrueを返してくれます。

EditorGUI.EndChangeCheck

更新処理

先程のエディタ拡張内に更新処理を実装します。


まずは、CustomEditorで「エディタ拡張を使うクラス」と CanEditMultipleObjects「複数のオブジェクトを編集」できるようにします。


呼び出し先のクラス

エディタ拡張で使用するクラスを準備します。


上記クラスを継承したクラスを使います。
Inspector上のhogeの値を変更した場合に特定の処理を呼び出せます。


Related Posts Plugin for WordPress, Blogger...