赞
踩
Button按钮的绘制需要用到GUILayout.Button或者EditorGUILayout.Button方法。
一、类型
按钮的绘制有很多种:
1.String类型Button:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- GUILayout.Button("按钮");
- }
- }
2.Icon图标类型Button:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- //用到的是Unity内置的播放样式的图标
- GUILayout.Button(EditorGUIUtility.IconContent("PlayButton"));
- }
- }
3.String + Icon类型图标:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- //用到的是Unity内置的播放样式的图标
- GUILayout.Button(EditorGUIUtility.TrTextContent("播放", string.Empty, "PlayButton"));
- }
- }
二、样式
Button的样式可以多种多样,下面列举几种样式:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- GUILayout.Button("按钮1", "ToolbarButton");
- GUILayout.Button("按钮2", "DropDownButton");
- GUILayout.Button("按钮3", "LargeButton");
- GUILayout.Button("按钮4", "IN EditColliderButton");
- }
- }
更多样式的预览方法可以查看前面的文章-编辑器开发之GUIStyle
三、大小
可以通过GUILayout.Width及GUILayout.Height来控制大小:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- GUILayout.Button("按钮1", GUILayout.Width(40));
- GUILayout.Button("按钮2", GUILayout.Width(50));
- GUILayout.Button("按钮3", GUILayout.Width(60));
- GUILayout.Button("按钮4", GUILayout.Width(70), GUILayout.Height(40));
- }
- }
四、交互
GUILayout.Button()方法的返回值表示该按钮是否被点击,所以只需要if判断:
- using UnityEngine;
- using UnityEditor;
-
- [CustomEditor(typeof(Test))]
- public class TestEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- if (GUILayout.Button("按钮"))
- {
- Debug.Log("点击了按钮.");
- }
- }
- }
点击按钮即可执行if代码块中的逻辑。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。