Unity FairyGUI(四)
一.文本控件
官方文档
- 文本是FairyGUI的基础控件之一。文本不支持交互,鼠标/触摸感应是关闭的。
- 普通文本不支持语法中的img、url标签,因为普通文本是不可以图文混排的。要支持图文混排,改为使用富文本。
public class Lesson18 : MonoBehaviour
{
private void Start()
{
GRoot.inst.SetContentScaleFactor(1365, 768,
UIContentScaler.ScreenMatchMode.MatchHeight);
var pack = UIPackage.AddPackage("Package1");
foreach (var item in pack.dependencies)
UIPackage.AddPackage(item["name"]);
var com = UIPackage.CreateObject("Package1", "LearnFGUI").asCom;
GRoot.inst.AddChild(com);
var text = com.GetChild("n18").asTextField;
text.textFormat.size = 30;
text.align = AlignType.Left;
text.verticalAlign = VertAlignType.Top;
text.SetVar("jin", "99999");
text.SetVar("yin", "99999");
text.FlushVars();
text.templateVars = new Dictionary<string, string>()
{
{"jin", "888888"},
{"yin", "666666"}
};
var gText = new GTextField
{
color = Color.green
};
gText.textFormat.size = 30;
gText.SetSize(200, 50);
gText.text = "你好";
com.AddChild(gText);
}
}
二.字体
官方文档
- 在初始化UI之前设置字体
- 需要在UI中重新设置默认字体才能生效
- 需要从Resources或者Fonts子目录下加载
public class Lesson20 : MonoBehaviour
{
private void Start()
{
UIConfig.defaultFont = "STHUPO";
var font = Resources.Load<Font>("xxx");
var dynamicFont = new DynamicFont("xxx", font);
FontManager.RegisterFont(dynamicFont);
GRoot.inst.SetContentScaleFactor(1365, 768,
UIContentScaler.ScreenMatchMode.MatchHeight);
var pack = UIPackage.AddPackage("Package1");
foreach (var item in pack.dependencies)
UIPackage.AddPackage(item["name"]);
var com = UIPackage.CreateObject("Package1", "LearnFGUI").asCom;
GRoot.inst.AddChild(com);
}
}
二.富文本控件
官方文档
- 富文本与普通文本的区别在于:
- 普通文本不支持交互,鼠标/触摸感应是关闭的;富文本支持。
- 普通文本不支持链接和图文混排;富文本支持。
- 普通文本不支持HTML语法(但可以使用UBB实现不同样式);富文本支持。
public class Lesson21 : MonoBehaviour
{
private void Start()
{
HtmlParseOptions.DefaultLinkUnderline = true;
HtmlParseOptions.DefaultLinkColor = Color.red;
HtmlParseOptions.DefaultLinkBgColor = Color.green;
HtmlParseOptions.DefaultLinkHoverBgColor = Color.yellow;
GRoot.inst.SetContentScaleFactor(1365, 768,
UIContentScaler.ScreenMatchMode.MatchHeight);
var pack = UIPackage.AddPackage("Package1");
foreach (var item in pack.dependencies)
UIPackage.AddPackage(item["name"]);
var com = UIPackage.CreateObject("Package1", "LearnFGUI").asCom;
GRoot.inst.AddChild(com);
var richTextField = com.GetChild("n21").asRichTextField;
richTextField.onClick.Add(() =>
{
Debug.Log("点击");
});
richTextField.onClickLink.Add((linkStr) =>
{
Debug.Log(linkStr.data);
});
var richTextField1 = com.GetChild("n22").asRichTextField;
richTextField1.richTextField.htmlParseOptions.linkColor = Color.yellow;
richTextField1.richTextField.htmlParseOptions.linkBgColor = Color.blue;
richTextField1.richTextField.htmlParseOptions.linkHoverBgColor = Color.green;
GRichTextField aRichTextField = new GRichTextField();
aRichTextField.SetSize(100,100);
aRichTextField.text = "<a href='xxx'>Hello World</a>";
com.AddChild(aRichTextField);
}
}
|