12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityでGradient EditorをGUIで使うには

Last updated at Posted at 2017-09-18

#Gradient Editorはこういうやつ
gradient.png

グラデーションを作るのに非常に便利で特定の用途にはすごく役に立ちます。
普通のGUIには用意されてないため使うには少し回りくどいやり方をしなければならないです。

#PropertyField
EditorGUILayout.PropertyFieldはSerializedPropertyを渡すことで最適なGUIを表示してくれます。
これを使うことでEditorGUIやGUIに用意されていないものも表示できます。
PropertyFieldのリファレンス

#実装

public class GradientData : ScriptableObject {
    public Gradient gradient = new Gradient();
}

public override void OnInspectorGUI()
{
    // 本来はメンバ変数などにインスタンスを一つだけ保持しておく 
    GradientData data = CreateInstance<GradientData>();
    SerializedObject serializedGradientData = new SerializedObject(data);
    SerializedProperty gradientProperty = serializedGradientData.FindProperty("gradient");

    EditorGUI.BeginChangeCheck();
    // PropertyFieldでGUI表示
    EditorGUILayout.PropertyField(gradientProperty);
    // 変更があったらApplyして変更を適用する必要がある 
    if (EditorGUI.EndChangeCheck())
    {
        serializedGradientData.ApplyModifiedProperties();
    }
}
12
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?