$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

Unity Editorで子オブジェクトでもWorld Positionをインスペクタで表示したい

Unity Editorで子オブジェクトにするとインスペクタ上でLocal Positionしか出なくなってしまう。World Positionだけをコンポーネントとしてコピーする方法もあるのだけど、他のオブジェクトをこのオブジェクトとX軸だけ合わせたいんだよな〜と思った時には難しい。

そのためインスペクタ上でWorld Positionも一緒に表示したいと思い調べてみると、Unityで親子関係のある子オブジェクトのワールド座標(絶対座標、外部座標)をインスペクタに表示する方法 - 結果だけでなく過程も見てくださいというめちゃくちゃ便利なやつを見つけた!これを導入することでUnity Editor上でこんな感じになる。

上の記事を参考にし、少しシンプルにしたものを置いておく。自分のプロジェクトのAssets/Editor/WorldPositionInspector.cs に置いてRefreshすればできるはず。

using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(Transform))]
public class WorldPositionInspector : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        Transform transform = (Transform)target;
        EditorGUILayout.Space();
        EditorGUILayout.Vector3Field("World Position", transform.position);
    }
}