五、编辑器开发之GUIStyle
2023-06-13 09:11:38 时间
在编辑器开发中会大量用到GUIStyle,为了能够精确的实现想要的样式,将所有的样式列在一个窗口中进行预览,如下:
在窗口顶部的Search输入框中输入样式名称的关键字可进行筛选。
点击样式左侧的拷贝按钮可将样式名称进行复制。
创建脚本GUIStyle.cs 引入UnityEditor命名空间 继承EditorWindow类 实现我们的窗口类。
使用MenuItem创建一个菜单用来打开窗口。
下面为代码,需要放在Editor文件夹中:
using UnityEngine;
using UnityEditor;
namespace SK.Framework
{
public sealed class GUIStyle : EditorWindow
{
[MenuItem("SKFramework/Editor/GUI/GUI Style")]
private static void OpenGUIStyle()
{
GetWindow<GUIStyle>().Show();
}
private UnityEngine.GUIStyle[] styles;
private Vector2 scroll = Vector2.zero;
private string searchContent = "";
private void OnGUI()
{
if (styles == null)
{
styles = GUI.skin.customStyles;
}
GUILayout.BeginHorizontal("Toolbar");
{
GUILayout.Label("Search:", GUILayout.Width(50));
searchContent = GUILayout.TextField(searchContent, "SearchTextField");
}
GUILayout.EndHorizontal();
scroll = GUILayout.BeginScrollView(scroll);
{
for (int i = 0; i < styles.Length; i++)
{
if (styles[i].name.ToLower().Contains(searchContent.ToLower()))
{
GUILayout.BeginHorizontal("Badge");
{
if (GUILayout.Button("拷贝", "LargeButton", GUILayout.Width(40f)))
{
EditorGUIUtility.systemCopyBuffer = styles[i].name;
Debug.Log($"拷贝名称: {styles[i].name}");
}
EditorGUILayout.SelectableLabel(styles[i].name, GUILayout.Width((position.width - 40f) * 0.3f));
GUILayout.Button(string.Empty, styles[i], GUILayout.Width((position.width - 40f) * 0.6f));
}
GUILayout.EndHorizontal();
}
}
}
GUILayout.EndScrollView();
}
}
}
在编辑器开发中可能还会大量用到Unity中内置的GUIIcon图标,内置图标的预览工具在后续文章中进行介绍。
相关文章
- 七、编辑器开发之PropertyDrawer
- Unity 编辑器开发实战【Model Importer】- 如何多选设置模型导入设置中的Material Location
- Unity 编辑器开发实战【AssetDatabase】- 获取资产的依赖项、引用项
- Unity 编辑器开发实战【Editor Window】- 关于提高Proto通信协议文件生成效率的考虑
- Unity 编辑器开发实战【Editor Window】- Replacer 替换器
- ace.js实现一个在线代码编辑器[通俗易懂]
- Mac代码编辑器CodeRunner 4.2
- ON1 Photo RAW 2023 for Mac(照片编辑器)中文版
- 基于vim思想开发出来的那些编辑器
- Linux从入门到入土①(Linux概述、文件系统、VIM编辑器)
- Acrobat 8安装步骤 PDF编辑器全版本软件下载
- Adobe Acrobat Pro DC 2019免安装!--最牛逼的PDF编辑器
- Adobe Acrobat XI Pro 软件安装教程PDF编辑器全版本下载
- fabric.js开发图片编辑器的细节实现
- 【Linux】Linux编辑器---vim的使用
- 欢迎使用CSDN-markdown编辑器详解手机开发
- vi编辑器 Linux 上的功能强大工具(linux的vi)
- 破解UltraEdit、破解UE编辑器
- Linux编辑器大比拼:哪一个最适合你的开发需求?(linux下编辑器)
- 使用Linux平台开发?学习用scite编辑器进行高效编程!(linuxscite)