效果:

核心代码:
private void RenderProgressSlider()
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("进度:");
var tmpRect = GUILayoutUtility.GetRect(10, 15);
var backRect = new Rect(40, tmpRect.y, 200, 15f);
var contentRect = new Rect(backRect);
contentRect.width = m_Progress*2;
EditorGUI.DrawRect(backRect, Color.white);
EditorGUI.DrawRect(contentRect, new Color32(6, 176, 37, 255));
var valueRect = new Rect(tmpRect);
valueRect.x = contentRect.x + 210;
GUI.Label(valueRect, m_Progress + "%");
EditorGUILayout.EndHorizontal();
}
原理就是利用两个Rect,一个作为背景,填充白色,另一个作为进度色,填充绿色;
完整工程源码在这里:https://github.com/luochanganz/Tick/tree/master/Unity

该博客介绍了如何在Unity编辑器中创建一个自定义的进度条组件。通过使用EditorGUILayout和EditorGUI方法,创建了两个Rect,一个作为进度条的背景,填充白色,另一个表示进度,填充绿色。代码示例详细展示了如何根据进度值动态调整填充宽度,并在右侧显示百分比。完整源码可在提供的GitHub链接中获取。
11万+





