Odinというプラグインをおすすめします。
例えば、InspectorにVector3 MyPosiotn
があったとしてx座標を動かすと自動的にy座標にx座標を代入する処理をOdinで書くと下記のようになります。
C#
1using Sirenix.OdinInspector;
2using UnityEngine;
3
4public class ChangePosionOnEditorTest : MonoBehaviour
5{
6 [OnValueChanged("OnChangePosition")]
7 public Vector3 MyPosition;
8
9 void OnChangePosition()
10 {
11 var pos = MyPosition;
12 pos.y = pos.x;
13 MyPosition = pos;
14 }
15}
OnValueChanged
アトリビュートの引数に関数名を渡すと値が変更された時に指定した関数を呼び出してくれます。
Odin - Inspector and Serializer
有料ですが、かなり簡単にエディタ拡張できておすすめです。
プラグインを作って配布するなどでなければ買って損はないプラグインです。
かなり時間の節約になります。
https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041
[おまけ]Odinの簡単な機能説明
配列をドラッグで入れ替えできる
ゲームバランスを考える時に入れ替えたいなど出てくるので便利です。
タブでグループ別けができる
ゲームの設定や広告ID、シェアURLなど定数で利用してます。
カラーピッカーの導入
前もってカラーをデザイナーに決めてもらい制限できるので便利です。
色選びに迷うことがなくなり、変な色を設定されることがなくなります。
独自のバリデーション
例えば、nullになって欲しくない場所や、値に0以上を入れて欲しいなどValidateInputAttribute
で独自のバリデーションが設定できます。そして、設定が正しいか専用画面で一括チェックできます。
僕がよく使う機能はこんな感じです。
というかもっと便利な機能もあると思いますが多すぎて使いきれてないです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。