UEDL3-6——滑动条、双滑块滑动条

本章代码关键字

1
2
3
EditorGUILayout.Slider()            //滑动条控件,可以调整在一个数值区间内调整值,需要配套一个float变量
EditorGUILayout.IntSlider() //整数滑动条控件,可以调整在一个数值区间内调整整数值,需要配套一个int变量
EditorGUILayout.MinMaxSlider() //双滑块滑动条控件,可以在一个数值区间内调整一个数值范围,需要配套两个float变量

滑动条控件

滑动条可以滑动调整一个float​值(Slider​)或者int​值(IntSlider​),用起来与其他UI的Slider没有差异
Slider​需要配套一个float​变量,IntSlider​需要配套一个int​变量,将对应的变量传入到它们的方法内,并接收方法的返回值

该控件可以通过SerializedProperty​直接修改MonoBehaviour​脚本对象的属性,使用SerializedProperty​就不需要配套额外变量

滑动条控件的参数重载非常多,以下是最常用的重载(整数滑动条的使用方法大致相同):

  • 参数一:文本标题(可改为GUIContent​)
  • 参数二:当前滑动条滑块滑动到多少值(int​或float​)
  • 参数三:左值,最小值
  • 参数四:右值,最大值
  • 参数五:GUILayoutOption​(使用EditorGUI​绘制时可选)
  • 返回值:本帧滑动条滑块滑动到的值(int​或float​)
  • 其他参数相关:可以使用序列化属性SerializedProperty​(在参数一,采用该参数则文本标题参数移至右值参数后)
    还可以修改整体,滑块,滑条,输入框等GUIStyle​,还可以修改滑动条的背景贴图,具体重载请转到Slider​的定义内查看
1
2
3
4
5
6
7
8
float fSlider;
int ISlider;

private void OnGUI()
{
fSlider = EditorGUILayout.Slider("滑动条", fSlider, 0, 10);
ISlider = EditorGUILayout.IntSlider("整数滑动条", ISlider, 0, 10);
}

显示效果:image

双滑块滑动条控件

双滑块滑动条相对于滑动条来说,它可以很方便的调整两个数之间的一个区间范围,
MinMaxSlider​需要配套两个float​变量,将对应的变量传入到该方法的ref​参数内,该方法无需接收返回值

  • 参数一:文本标题(可改为GUIContent​)
  • 参数二:表示区间的最小值
  • 参数三:表示区间的最大值
  • 参数四:左值,区间可以取到的最小值
  • 参数五:右值,区间可以取到的最大值
  • 参数六:GUILayoutOption​(使用EditorGUI​绘制时可选)
1
2
3
4
5
6
7
8
float leftV;
float rightV;

private void OnGUI()
{
EditorGUILayout.MinMaxSlider("双块滑动条", ref leftV, ref rightV, 0, 10);
EditorGUILayout.LabelField($"范围在{leftV}{rightV}之间");
}

显示效果:image