【游戏技术群】959392658  【游戏出海群】12067810
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   随幻Kaller

Unity Text文本自适应 最小/最大宽度 最小/最大高度

个人分类: C# 脚本 | 2019-1-31 11:31
Text 水平方向来说 一个需求:
如果没有文字 则宽度是 100  当文字输入过程中 如果宽度 > 100 < 300 则自适应 > 300 则剩下的文字忽略掉
垂直方向亦是如此
以下列出一种解决的简单方案
在 Text 上挂 3 个脚本 ContentSizeFitter LayoutElement TextAutoFit(之后列出)
ContentSizeFitter 都设置成: PreferredSize
LayoutElement 中 MinWidth MinHeight 打上勾 设置成 100
TextAutoFit 代码如下:

[code]csharpcode:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TextAutoFit : MonoBehaviour
{
    Text m_text;
    ContentSizeFitter fitter;
    LayoutElement layout;
    // Use this for initialization
    void Start()
    {
        m_text = GetComponent<Text>();
        fitter = this.GetComponent<ContentSizeFitter>();
        layout = this.GetComponent<LayoutElement>();
    }

    // Update is called once per frame
    void Update()
    {
        float curTextWidth = m_text.preferredWidth;
        if (curTextWidth > layout.minWidth * 3f)
            fitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
        else
            fitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;


        float curTextHeight = m_text.preferredHeight;
        if (curTextHeight > layout.minHeight * 3f)
            fitter.verticalFit = ContentSizeFitter.FitMode.Unconstrained;
        else
            fitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize;



    }
}

0 0

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

返回顶部