IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【IMGUI】 GUIStyle、GUISkin、EditorStyles -> 正文阅读

[游戏开发]【IMGUI】 GUIStyle、GUISkin、EditorStyles

先看一个例子:?

    private void OnGUI()
    {
        //通过在GUISkin中获取button的默认GUIStyle
        GUIStyle style = GUI.skin.button;
        //下面开始修改
        style.fontStyle = FontStyle.Italic;//文字是斜体
        style.fontSize = 20;//文字大小20
        style.richText = true; //文字是否支持富文本
 
        GUILayout.Button("<color=red>我是红色的按钮</color>", style,GUILayout.Width(180));
    }

Unity编辑器中有一个默认的皮肤预设,这个预设里面对于button、toggle、textField等等控件的样子都进行的设定。

皮肤预设(GUI Skin)可以在Project窗口里面创建出来。

?里面包含对如下控件样子的设定。GUISkin 是可应用于 GUI 的 GUIStyle 的集合。皮肤 (Skin) 的主要目的将样式应用于整个 UI,而不是应用于单独的控件本身。

要使用自定义的GUISkin,只需要创建一个GUISkin字段,然后将自定义的GUISkin文件拖入。

最后设置GUI.Skin = MyCustomSkin就OK。 要将GUI.Skin设为默认的,只需GUI.Skin=null。

并且有了GUI.Skin后,Skin里面有许多的Style类型。看见GUIStyle类型的参数时,我们是可以直接传入GUI.Skin中GUIStyle的名称字符串的,系统自动帮我选取字符串对应的GUIStyle。

GUIStyle的属性

属性:功能:
Name可用于指代此特定样式的文本字符串
Normal控件在默认状态下显示的背景图像和文本颜色
Hover当鼠标位于控件上方时显示的背景图像和文本颜色
Active当鼠标主动单击控件时显示的背景图像和文本颜色
Focused控件获得键盘焦点时显示的背景图像和文本颜色
On Normal控件在启用状态下显示的背景图像和文本颜色
On Hover当鼠标位于已启用的控件上方时显示的背景图像和文本颜色
On Active当鼠标主动单击已启用的控件时显示的属性
On Focused已启用的控件获得键盘焦点时显示的背景图像和文本颜色
Border背景__图像每条边的像素数(不受控件形状比例影响) | |Padding__从控件每个边缘到内容起始位置的空间(以像素为单位)。
Margin以此样式渲染的元素与任何其他 GUI 控件之间的边距。
Overflow要添加到背景图像的额外空间。
Font用于此样式中所有文本的字体
Image Position背景图像和文本的组合方式。
Alignment标准文本对齐选项。
Word Wrap如果启用此属性,到达控件边界的文本将换到下一行
Text Clipping如果启用了?Word Wrap__,选择超出控件边界的文本的处理方式 | |????????Overflow__任何超出控件边界的文本都将继续超出边界
??Clip任何超出控件边界的文本都将隐藏起来
Content Offset除了所有其他属性之外,内容在 X 和 Y 轴上移位的像素数
? X左/右偏移
??Y上/下偏移
Fixed Width控件宽度的像素数,此值将覆盖任何提供的?Rect()?值
Fixed Height控件高度的像素数,此值将覆盖任何提供的?Rect()?值
Stretch Width如果启用此属性,则可以水平拉伸使用此样式的控件来改善布局。
Stretch Height如果启用此属性,则可以垂直拉伸使用此样式的控件来改善布局。

EditorStyles

用于 EditorGUI 控件的常见 GUIStyle。

通过以下方式可以显示出所有的样式:

#你好Unity3D#系统所有EditorStyles | 雨松MOMO程序研究院 (xuanyusong.com)

public class MyWindows : EditorWindow  
{
 
	static List<GUIStyle> styles = null;
	[MenuItem("Window/styles")]
	public static void Test() {
		EditorWindow.GetWindow<MyWindows>("styles");
 
		styles = new List<GUIStyle> (); 
		foreach(PropertyInfo fi in typeof(EditorStyles).GetProperties(BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic))
		{
			object o = fi.GetValue (null, null);
			if (o.GetType () == typeof(GUIStyle)) {
				styles.Add (o as GUIStyle);
			}
		}
	}
 
	public Vector2 scrollPosition = Vector2.zero;
	void OnGUI() 
	{
		scrollPosition = GUILayout.BeginScrollView (scrollPosition);
		for (int i = 0; i < styles.Count; i++) {
			GUILayout.Label ("EditorStyles." +styles[i].name , styles[i]);
		}
		GUILayout.EndScrollView ();
	}
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:26:03  更:2022-01-16 13:26:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:27:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码