UnityのUI入门之文本Text
Text
说到UI,肯定就得提文本(Text),今天介绍下Unity内置的Text类和它的各种调戏方式。先贴官方API,https://docs.unity3d.com/ScriptReference/UI.Text.html
class in UnityEngine.UI / Inherits from:UI.MaskableGraphic
Implements interfaces:ICanvasElement, IClippable, ILayoutElement, IMaskable, IMaterialModifier
当然我不可能每个Properties都详细介绍,挑一些比较常用的。
描述Description
挂在Canvas下,在屏幕上输出字体图像。需要using UnityEngie.UI;
常用参数Properties
文本text
显示的内容,myText.text(String)
,可直接修改。
public void ChangeText()
{
myText.text = "My name is IIzzaya";
}
需注意的是,若字体或者一个单词超过文本框高度不会显示,超过宽度则会自动换行。
动态调整字体大小需要用到resizeTextForBestFit(Bool),将其改为True(默认为False)
public void ChangeText() { myText.text = "My name is IIzzaya"; myText.resizeTextForBestFit = true; }
其次还有配套的
- resizeTextMaxSize(int) 表自调整最大字号
- resizeTextMinSize(int) 表自调整最小字号
字体font
可直接导入.tff
后缀的字体,拖入/Assets
即可。
public Font myFont;
myText.font = myFont;
字号fontSize
即字体大小,可直接修改myText.fontSize = 16;
。
字体样式fontStyle
myText.fontStyle(Enum)
,通过FontStyle
的枚举类型赋值。
myText.fontStyle = FontStyle.Bold;
//.Normal无 .Bold加粗 .Italic斜体 .BoldAndItalic斜体加粗
行间距lineSpacing
字面上的意思,可直接赋值。myText.lineSpacing = 1
表一倍行间距。
对齐alignment
myText.alignment(Enum)
,通过TextAnchor
的枚举类型赋值。分别有九宫格位置,再次不列举了。
几何对齐alignmentByGeometry
myText.aligenmentByGeometry(Bool)
,意义不明,貌似是开头对齐?
水平换行horizontalOverflow
枚举类型赋值。Overflow表示不换行并且可以突破宽度限制,Wrap表示自动换行。
垂直换行verticalOverflow
类比水平换行。
颜色Color
字体的颜色myText.color(Color/Vector4)
,采用Color类型,实质上是Vector4类型。颜色用RGBA码表示。
R(RED), G(GREEN), B(BLUE), A(ALPHA透明度)。
myText.color = new Color(1,1,1,1);
myText.color = new Vector4(1,1,1,1);
myText.color = new Color(1,1,1);//也可省略透明度,默认为1
将html(16进制)颜色代码转换为Color类型的方法
Color tmp; ColorUtility.TryParseHtmlString("#00FFFFFF", out tmp); myText.color = tmp;
材质material
myText.material(Material)
字体的材质。
射线目标raycastTarget
myText.raycastTarget(Bool)
是否可以被射线选为目标。
常用方法Methods
无…