zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Unity 使用this关键字进行函数拓展 - Text

函数 进行 Unity 关键字 this Text 拓展 使用
2023-09-27 14:19:56 时间

Example:

using UnityEngine;
using UnityEngine.UI;

using SK.Framework;

public class Foo : MonoBehaviour
{
    private void Start()
    {
        GetComponent<Text>()
            //设置文本内容
            .SetContent("Today is a good day.")
            //设置字体
            .SetFont(Resources.Load<Font>(""))
            //设置字体样式
            .SetFontStyle(FontStyle.Bold)
            //设置行间距
            .SetLineSpacing(1.5f)
            //设置富文本
            .SetRichText(true)
            //设置对齐方式
            .SetAlignment(TextAnchor.MiddleCenter)
            //设置水平溢出
            .SetHorizontalOverflow(HorizontalWrapMode.Overflow)
            //设置垂直溢出
            .SetVerticalOverflow(VerticalWrapMode.Overflow)
            //设置大小适应
            .SetBestFit(false);
    }
}

Extension:

using UnityEngine;
using UnityEngine.UI;

namespace SK.Framework
{
    /// <summary>
    /// Text相关拓展
    /// </summary>
    public static class TextExtension
    {
        /// <summary>
        /// 设置Text内容
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="content"></param>
        /// <returns>实例</returns>
        public static T SetContent<T>(this T self, string content) where T : Text
        {
            self.text = content;
            return self;
        }
        /// <summary>
        /// 设置字体
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="font">字体</param>
        /// <returns>实例</returns>
        public static T SetFont<T>(this T self, Font font) where T : Text
        {
            self.font = font;
            return self;
        }
        /// <summary>
        /// 设置字体样式
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="fontStyle">字体样式</param>
        /// <returns>实例</returns>
        public static T SetFontStyle<T>(this T self, FontStyle fontStyle) where T : Text
        {
            self.fontStyle = fontStyle;
            return self;
        }
        /// <summary>
        /// 设置行间距
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="lineSpacing">行间距</param>
        /// <returns>实例</returns>
        public static T SetLineSpacing<T>(this T self, float lineSpacing) where T : Text
        {
            self.lineSpacing = lineSpacing;
            return self;
        }
        /// <summary>
        /// 设置是否支持富文本
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="richText">是否支持富文本</param>
        /// <returns>实例</returns>
        public static T SetRichText<T>(this T self, bool richText) where T : Text
        {
            self.supportRichText = richText;
            return self;
        }
        /// <summary>
        /// 设置对齐方式
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="alignment">对齐方式</param>
        /// <returns>实例</returns>
        public static T SetAlignment<T>(this T self, TextAnchor alignment) where T : Text
        {
            self.alignment = alignment;
            return self;
        }
        /// <summary>
        /// 设置AlignByGeometry
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="alignByGeometry">AlignByGeometry</param>
        /// <returns>实例</returns>
        public static T SetAlignByGeometry<T>(this T self, bool alignByGeometry) where T : Text
        {
            self.alignByGeometry = alignByGeometry;
            return self;
        }
        /// <summary>
        /// 设置HorizontalOverflow
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="horizontalWrapMode">HorizontalOverflow</param>
        /// <returns>实例</returns>
        public static T SetHorizontalOverflow<T>(this T self, HorizontalWrapMode horizontalWrapMode) where T : Text
        {
            self.horizontalOverflow = horizontalWrapMode;
            return self;
        }
        /// <summary>
        /// 设置VerticalOverflow
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="verticalWrapMode">VerticalOverflow</param>
        /// <returns>实例</returns>
        public static T SetVerticalOverflow<T>(this T self, VerticalWrapMode verticalWrapMode) where T : Text
        {
            self.verticalOverflow = verticalWrapMode;
            return self;
        }
        /// <summary>
        /// 设置BestFit
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="self">实例</param>
        /// <param name="bestFit">BestFit</param>
        /// <returns>实例</returns>
        public static T SetBestFit<T>(this T self, bool bestFit) where T : Text
        {
            self.resizeTextForBestFit = bestFit;
            return self;
        }
    }
}