コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Vector2型、Vector3型、Rect型、Bounds型の変数の値をInspectorで設定しやすくする「CompactAttribute」

using UnityEngine;

public class MyBehaviourScript : MonoBehaviour
{
    public Vector2 Vector2;
    public Vector3 Vector3;
    public Rect    Rect;
    public Bounds  Bounds;
}

f:id:baba_s:20140302175901p:plain

通常、Vector2型やVector3型の変数の値をInspectorで設定する場合、
上記のような表示になりますが、初期表示が折りたたまれているため少し設定しにくいです。
そこで、下記のようなスクリプトを作成すると
もっと直感的にInspectorでVector2型やVector3型の変数の値を設定できるようになります。

  1. 「CompactAttribute.cs」をUnityプロジェクトに追加します
  2. Unityプロジェクトに「Editor」フォルダが存在しない場合は作成します
  3. 「CompactDrawer.cs」をUnityプロジェクトの「Editor」フォルダに追加します
  4. 下記のような構文で使用します
using UnityEngine;

public class MyBehaviourScript : MonoBehaviour
{
    [Compact] public Vector2 Vector2;
    [Compact] public Vector3 Vector3;
    [Compact] public Rect    Rect;
    [Compact] public Bounds  Bounds;
}

f:id:baba_s:20140302175913p:plain

このCompactAttributeを使用すると、
Vector2型、Vector3型、Rect型、Bounds型の変数の値を
Inspector上でわかりやすく設定できるようになります

http://forum.unity3d.com/threads/158808-PropertyDrawer-Compact-for-Vector2-Vector3