グラデーションを作るのに非常に便利で特定の用途にはすごく役に立ちます。
普通の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();
}
}