UEDL4-5——绘制色板、绘制曲线

本章代码关键字

1
2
EditorGUIUtility.DrawColorSwatch()        //绘制色板,便于EditorGUILayout.ColorField选取固定的颜色
EditorGUIUtility.DrawCurveSwatch() //绘制曲线,主要配合EditorGUILayout.CurveField使用,它可以更好的显示绘制的曲线

绘制色板

在指定区域绘制一个色板矩形(相对于EditorGUI.DrawRect​,它的不同点是会在矩形底部加一个白色部分)
主要配合EditorGUILayout.ColorField​使用,可以使用取色器快速获取指定的默认颜色

1
2
3
4
5
6
private Color color;
private void OnGUI()
{
color = EditorGUILayout.ColorField(new GUIContent("选取颜色"), color, true, true, true);
EditorGUIUtility.DrawColorSwatch(new Rect(10, 210, 30, 30), Color.blue);
}

显示效果:image

绘制曲线

在指定区域绘制曲线,主要配合EditorGUILayout.CurveField()​使用,它可以更好的显示绘制的曲线

  • 参数一:绘制区域
  • 参数二:要绘制的曲线
  • 参数三:序列化属性SerializedProperty​,可传入null
  • 参数四:曲线颜色
  • 参数五:背景颜色
1
2
3
4
5
6
private AnimationCurve curve = new AnimationCurve();
private void OnGUI()
{
EditorGUILayout.CurveField("曲线设置", curve);
EditorGUIUtility.DrawCurveSwatch(new Rect(5, 230, 100, 80), curve, null, Color.red, Color.white);
}

显示效果:image