Unity FairyGUI(四)

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()
    {
    	//在初始化UI之前设置字体
        //需要从Resources或者Fonts子目录下加载
        UIConfig.defaultFont = "STHUPO";
        //如果自定义加载
        var font = Resources.Load<Font>("xxx");
        var dynamicFont = new DynamicFont("xxx", font);
        FontManager.RegisterFont(dynamicFont);
        //如果要使用TextMeshPro需要加上宏定义
        
        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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值