在编辑器开发中可以使用AnimBool来为编辑器添加动态效果,下面以foldout的折叠效果为例:
首先声明一个AnimBool类型变量,需要在OnEnable函数中对其进行初始化。
private AnimBool foldout;
private void OnEnable()
{
//参数1 bool类型 表示初始值
//参数2 回调函数 设为重新绘制事件
foldout = new AnimBool(false, Repaint);
}
使用EditorGUILayout.Foldout绘制折叠页,以此改变AnimBool的target值。
foldout.target = EditorGUILayout.Foldout(foldout.target, "Foldout", true);
使用EditorGUILayout.BeginFadeGroup制作动态效果,参数传入AnimBool的faded值。
if (EditorGUILayout.BeginFadeGroup(foldout.faded))
{
GUILayout.Label("Label 1.");
GUILayout.TextField(string.Empty);
GUILayout.Button("Button");
GUILayout.Label("Label 2.");
GUILayout.TextArea(string.Empty);
}
EditorGUILayout.EndFadeGroup();
效果如下: