Unity2019 UIElement 笔记(五)Unity样式表(USS)

样式与Unity样式表

本内容来自官方文档 https://docs.unity3d.com/Manual/UIE-USS.html
每一个VisualElement都包含属性样式,用于设置元素的尺寸,颜色,绘制方式等。属性样式可以在C#中设置,也可以在样式表中设置。
而UIElements支持用USS编写的样式表(Unity样式表),UXML就类似于HTML,而USS样式就类似于CSS,在本内容中,我只会简单的介绍有关USS及其语法和差异。如果想要更好的学习请参考官方文档以及学习CSS方面的内容。

USS的定义

  • 被识别为asset的文本文件,必须以uss为拓展名
  • 仅支持样式规则(USS语法与CSS3的W3C规范相匹配)

一般语法如下:

selector 
{
  property1:value;
  property2:value;
}

将USS附加到VisualElement

我们可以将USS附加到任何VisualElement上,且该样式规则适用于VisualElement及其子类,必要时会重新应用样式表。
StyleSheet使用标准Unity API 加载对象,例如AssetDatabase.Load()或Resources.Load()。
使用VisualElement.styleSheets.Add()方法将样式表附加到可视元素。
具体使用参考 Unity2019 UIElement 笔记(一)创建脚本
https://blog.csdn.net/qq_43500611/article/details/89604455

风格匹配

当定义好样式表之后,就可以将其应用到UIElement树上。
在这个过程中,选择器就自动与元素(VisualElement)进行匹配,如果能够匹配,那么该样式声明就会应用于元素。
例如该规则就匹配任何Button对象

Button 
{
  width: 200px;
}

VisualElement匹配

UIElements会使用以下规则将VisualElement与样式规则进行匹配:

  • C#类名
  • name属性,是一个字符串
  • 由一组字符串组成的class列表
  • 该节点的父节点以及位置

可以参考css中的id属性和class属性

你可能感兴趣的:(Unity笔记)