using UnityEngine;
using UnityEditor;public class SplitViewWindow : EditorWindow
{
private Vector2 scrollPos = Vector2.zero;
float currentScrollViewHeight;
bool resize = false;
Rect cursorChangeRect;[MenuItem("MyWindows/SplitView")]
public static void Init()
{
EditorWindow t = GetWindow<SplitViewWindow>();
}void OnEnable()
{
this.position = new Rect(200, 200, 400, 300);
currentScrollViewHeight = this.position.height / 2;
cursorChangeRect = new Rect(0, currentScrollViewHeight, this.position.width, 5f);
}void OnGUI()
{
GUILayout.BeginVertical();
scrollPos = GUILayout.BeginScrollView(scrollPos, GUILayout.Height(currentScrollViewHeight));
for (int i = 0; i < 20; i++)
GUILayout.Label("dfs");
GUILayout.EndScrollView();ResizeScrollView();
GUILayout.FlexibleSpace();
GUILayout.Label("Lower part");GUILayout.EndVertical();
Repaint();
}private void ResizeScrollView()
{
GUI.color = Color.blue;
GUI.DrawTexture(cursorChangeRect, EditorGUIUtility.whiteTexture);
EditorGUIUtility.AddCursorRect(cursorChangeRect, MouseCursor.ResizeVertical);if (Event.current.type == EventType.mouseDown && cursorChangeRect.Contains(Event.current.mousePosition))
{
resize = true;
}
if (resize)
{
currentScrollViewHeight = Event.current.mousePosition.y;
cursorChangeRect.Set(cursorChangeRect.x, currentScrollViewHeight, cursorChangeRect.width, cursorChangeRect.height);
}
if (Event.current.type == EventType.MouseUp)
resize = false;
}
}
Editor splitview 示例
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...