UGUI基础组件Text

基本属性如下图:

这里写图片描述

Character: 
1、Font:字体 
2、Font Style: 
(1)Normal:正常 
(2)Bold:粗体 
(3)Italic:斜体 
(4)Bold And Italic:粗体+斜体 
3、Font Size:字体大小 
4、Line Spacing:行间距(注:Text组件没有提供修改字间距的属性,在前面写过修改字间距的脚本) 
5、Rich Text:富文本 
这里写图片描述 
支持多组合的语法例如下面例子: 
这里写图片描述

Paragraph: 
1、Alignment:这里写图片描述 
前面三个按钮是水平方向(分别为左对齐、居中、右对齐),后面三个按钮是垂直方向(分别为顶对齐,居中,底对齐)

2、Align By Geometry: 
官方解释: 
Use the extents of glyph geometry to perform horizontal alignment rather than glyph metrics. 
This can result in better fitting left and right alignment, but may result in incorrect positioning when attempting to overlay multiple fonts (such as a specialized outline font) on top of each other. 
使用区段的字形几何执行水平对齐,而不是字形指标。 
这可以导致更好的拟合左和右对齐,但可能会导致不正确的定位当试图覆盖多个字体(如专业轮廓字体)上。

3、Horizontal Overflow:水平溢出 
(1)Wrap:文本将自动换行,当达到水平边界 
(2)Overflow:文本可以超出水平边界,继续显示 
4、Vertical Overflow:垂直溢出 
(1)Truncate:文本不显示超出垂直边界的部分 
(2)Overflow:文本可以超出垂直边界,继续显示 
5、Best Fit:勾选之后,编辑器发生变化,显示Min Size和Max Size 
(1)Min Size:最小大小 
(2)Max Size:最大大小 
当边框很大时,文字最大显示Max Size字体大小;当边框很小时,文字最小显示Min Size字体大小,边框显示不了MinSize字体大小就不再显示文字了。

Color:颜色

Material:材质

Raycast Target:来自类Graphic,当该项为false时,消息会透传

拓展:

1、让Text的高度随着文本内容的多少变化,只需要添加ContentSizeFitter脚本,并将VerticalFit设置为PreferredSize就可以了。

2、Text的开头或一行的中间某个位置加一个空格会导致文本换行显示,解决方案是用全角的空格,脚本里这样写:"\u3000\u3000全角空格的代码阿阿阿阿阿阿阿阿阿阿阿阿阿阿阿阿阿"。

### 创建自定义 UGUI 组件 在 Unity 中创建自定义 UGUI (Unity GUI) 组件涉及几个关键步骤。这不仅限于简单的 UI 元素定制,还涉及到更深层次的图形处理和交互逻辑。 #### 定义新的 Graphic 类型 为了创建一个新的可绘制对象,继承 `Graphic` 是必要的路径之一。通过这种方式,新组件能够像内置的 `Image`, `Text` 等一样工作,并且可以在 Canvas 上正常渲染[^2]。 ```csharp using UnityEngine; using UnityEngine.UI; public class CustomShape : Graphic { protected override void OnPopulateMesh(VertexHelper vh) { vh.Clear(); // 添加顶点数据到 VertexHelper 实例中 var vertices = new List<UIVertex>(); PopulateVertices(vertices); vh.AddUIVerticles(vertices.ToArray()); } private void PopulateVertices(List<UIVertex> verts){ // 设置顶点位置、颜色和其他属性... UIVertex vertex = UIVertex.simpleVert; vertex.position = new Vector3(0, 0); // 示例坐标 vertex.color = Color.white; // 白色填充 // 至少添加四个顶点以形成闭合区域 for(int i=0;i<4;i++){ verts.Add(vertex); } } } ``` 此代码片段展示了如何通过覆盖 `OnPopulateMesh()` 方法来自定义网格几何结构并将其应用于自定义形状。注意每次至少要向 `VertexHelper` 对象中添加四组顶点信息以便构成有效的多边形。 #### 扩展现有组件功能 对于希望增强已有组件行为而不改变其基本外观的情况,则可以选择从 `BaseMeshEffect` 或者其他合适的基类派生。例如,在不改动文本布局的前提下为其应用特殊效果(如斜体),可以通过如下方式实现: ```csharp using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Text))] public class ItalicModifier : BaseMeshEffect { public override void ModifyMesh(VertexHelper vh) { if (!IsActive()) return; List<UIVertex> vertList = new List<UIVertex>(); vh.GetUIVertexStream(vertList); foreach(var v in vertList){ // 修改顶点的位置或其他特性来模拟斜体效果 float offsetX = Mathf.Sin(Mathf.Deg2Rad * 45)*v.position.y*0.1f; v.position += new Vector3(offsetX, 0, 0); } vh.Clear(); vh.AddUIVertexTriangleStream(vertList); } } ``` 这段 C# 脚本提供了一个简单的方法来调整文字字符间的相对位移从而达到视觉上的倾斜感,而无需深入理解字体文件内部细节[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nmg10

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值