Unity 编辑器扩展总结 九:GUIStyle、GUISkin

编辑器扩展总结

工欲善其事必先利其器

引言: 在项目开发中,编辑器扩展为开发者提供了开发自定义工具的功能,让开发者更加便利地使用编辑器开发项目。如若博客中存在错误,还请不吝赐教。所有参考的博客或者视频来源将在文末展示。
开发版本: Unity 2019.4.9f1

相关博客传送门
一、编辑器开发入门

二、编辑器的相关特性

三、自定义Inspector面板

四、创建编辑器窗体

五、Gizmos辅助调试工具

六、扩展Scene视图

七、数组或list集合的显示方式

八、EditorPrefs、ScriptableObject、Undo

九、GUIStyle、GUISkin

十、AssetPostprocessor资源导入管线

GUIStyle、GUISkin

GUIStyle的简单使用

GUIStyle用于修改GUI的风格样式,除了适用于编辑器开发,也适用于Unity旧版的UI系统(IMGUI)。GUIStyleu拥有多种属性,可以方便开发者自定义编辑器UI样式。当我们未自定义GUIStyle时,使用的就是unity默认的GUIStyle样式。GUIStyle有点像网页前端开发的层叠样式表CSS,拥有很多状态属性可以调整。(unity2019之后新出的UIElement模块中的USS就更像是CSS了)

示例:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    private GUIStyle _titleStyle;

    private void OnEnable()
    {
        _titleStyle = new GUIStyle();
        _titleStyle.fontStyle = FontStyle.Bold;
        _titleStyle.fontSize = 20;
    }

    public override void OnInspectorGUI()
    {
        //使用Unity默认的Label样式
        EditorGUILayout.LabelField("GUIStyle");
        //使用自定义的Label样式
        EditorGUILayout.LabelField("GUIStyle", _titleStyle);
    }
}

GUISkin的简单使用

GUISkin是基本所有样式的集合,可以作为一种配置资源。如果开发者需要自定义大量的GUIStyle,可以通过GUISkin配置资源来定义,并且开发者可以在Inspector面板中直接修改样式。

在Project面板,鼠标右键Create-GUISkin既可以创建。

可以将新建的GUISkin资源放在Editor里的Resources文件内,方便动态加载。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
    private GUIStyle _titleStyle;

    private void OnEnable()
    {
        GUISkin skin = Resources.Load("New GUISkin") as GUISkin;
        _titleStyle = skin.label;
    }

    public override void OnInspectorGUI()
    {
        EditorGUILayout.LabelField("GUIStyle");
        EditorGUILayout.LabelField("GUIStyle", _titleStyle);
    }
}

接下来,就可以通过GUISkin资源来修改样式效果了。如下修改会得到和之前通过直接修改GUIStyle一样的效果。

参考资料

【Unity】8.2 GUI Style和GUISkin

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值