当前位置:   article > 正文

十、Unity编辑器开发之Button_editorguiutility.trtextcontentwithicon

editorguiutility.trtextcontentwithicon

Button按钮的绘制需要用到GUILayout.Button或者EditorGUILayout.Button方法。

一、类型

按钮的绘制有很多种:

1.String类型Button:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. GUILayout.Button("按钮");
  9. }
  10. }

2.Icon图标类型Button:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. //用到的是Unity内置的播放样式的图标
  9. GUILayout.Button(EditorGUIUtility.IconContent("PlayButton"));
  10. }
  11. }

3.String + Icon类型图标:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. //用到的是Unity内置的播放样式的图标
  9. GUILayout.Button(EditorGUIUtility.TrTextContent("播放", string.Empty, "PlayButton"));
  10. }
  11. }

二、样式

Button的样式可以多种多样,下面列举几种样式:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. GUILayout.Button("按钮1", "ToolbarButton");
  9. GUILayout.Button("按钮2", "DropDownButton");
  10. GUILayout.Button("按钮3", "LargeButton");
  11. GUILayout.Button("按钮4", "IN EditColliderButton");
  12. }
  13. }

更多样式的预览方法可以查看前面的文章-编辑器开发之GUIStyle

三、大小

可以通过GUILayout.Width及GUILayout.Height来控制大小:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. GUILayout.Button("按钮1", GUILayout.Width(40));
  9. GUILayout.Button("按钮2", GUILayout.Width(50));
  10. GUILayout.Button("按钮3", GUILayout.Width(60));
  11. GUILayout.Button("按钮4", GUILayout.Width(70), GUILayout.Height(40));
  12. }
  13. }

四、交互

GUILayout.Button()方法的返回值表示该按钮是否被点击,所以只需要if判断:

  1. using UnityEngine;
  2. using UnityEditor;
  3. [CustomEditor(typeof(Test))]
  4. public class TestEditor : Editor
  5. {
  6. public override void OnInspectorGUI()
  7. {
  8. if (GUILayout.Button("按钮"))
  9. {
  10. Debug.Log("点击了按钮.");
  11. }
  12. }
  13. }

点击按钮即可执行if代码块中的逻辑。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号