Unity InputField宽度自适应内容

在Unity中,InputField在我们输入内容时,只会显示适应初始宽度的最新内容,或者自定义长度内容。

那么,要实现宽度自适应内容就需要另寻他法了。

以下是通过一个控制脚本来实现的一个简单方法。

直接上脚本:

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

public class DynamicInputFieldSize : MonoBehaviour
{
    public TMP_InputField inputField;
    public RectTransform inputFieldRect;
    private float initialWidth;
    private float characterWidth = 20f;

    void Start()
    {
        // 获取输入框的初始宽度
        initialWidth = inputFieldRect.sizeDelta.x;

        // 监听输入框文本变化事件
        inputField.onValueChanged.AddListener(OnInputValueChanged);
    }

    void OnInputValueChanged(string text)
    {
        // 设置输入框文本内容
        inputField.text = text;

        // 获取文本的预期宽度
        TMP_Text textComponent = inputField.textComponent;
        float minWidth = textComponent.GetPreferredValues(text).x + characterWidth; 

        // 判断文本内容是否超过初始宽度
        if (minWidth > initialWidth)
        {
            // 调整输入框的宽度
            inputFieldRect.sizeDelta = new Vector2(minWidth, inputFieldRect.sizeDelta.y);
        }
        else
        {
            // 将输入框宽度恢复为初始宽度
            inputFieldRect.sizeDelta = new Vector2(initialWidth, inputFieldRect.sizeDelta.y);
        }
    }
}

该控制脚本的方法原理很简单,就是通过获取文本长度,然后调整输入框的宽度来实现。

效果:

Unity InputField宽度自适应内容

相关推荐

  1. Unity InputField宽度适应内容

    2024-03-11 06:36:04       45 阅读
  2. el-dialog宽度适应

    2024-03-11 06:36:04       44 阅读
  3. EasyExcel表头宽度根据数据内容适应+自动换行

    2024-03-11 06:36:04       63 阅读
  4. uniapp app 实现适应宽度 input

    2024-03-11 06:36:04       55 阅读
  5. Python适应调整Excel的列宽度

    2024-03-11 06:36:04       68 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 06:36:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 06:36:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 06:36:04       82 阅读
  4. Python语言-面向对象

    2024-03-11 06:36:04       91 阅读

热门阅读

  1. 002 Object类

    2024-03-11 06:36:04       35 阅读
  2. 大唐杯学习笔记:Day10

    2024-03-11 06:36:04       37 阅读
  3. Rust个人学习之包&模块

    2024-03-11 06:36:04       41 阅读
  4. MybatisPlus自动生成代码

    2024-03-11 06:36:04       42 阅读
  5. Git Cherry-Pick命令详解:轻松选取与移植提交

    2024-03-11 06:36:04       41 阅读
  6. Android Intent 传递数据过大问题

    2024-03-11 06:36:04       45 阅读
  7. [论文笔记] Transformer-XL

    2024-03-11 06:36:04       39 阅读
  8. HTTP常见报错响应码

    2024-03-11 06:36:04       43 阅读
  9. 【设计模式专题之工厂方法模式】2.积木工厂

    2024-03-11 06:36:04       42 阅读
  10. Asp .Net Core 集成 Newtonsoft.Json

    2024-03-11 06:36:04       49 阅读
  11. 二叉树遍历详解

    2024-03-11 06:36:04       35 阅读