在做文本框的时候,我们经常碰到需要计算字符输入的长度,然后适当地做处理。这个时候不能直接了当地拿text.Length来用,原因有:

1、字符会因为fontSize的大小不同而有不同的宽度;

2、即使fontSize在你的场景里是同一的,字符也有英文字符和中文字符等的差别,它们的宽度也是相差极大的,比如字符I和字符N的宽度就很不一样,而与任何一个中文字符又是不一样的。

好在Unity也提供了这样的方法给我们使用。如下例:

public Text text;

?public int allTextWidth;

foreach(var item in input.text)

{

CharacterInfo info = new CharacterInfo();

text.font.GetCharacterInfo(item, out info, 14);//14是字体的字号,可以从text里获取。

allTextWidth += info.advance;//总的字符宽度

}

最后得到的就是总的字符宽度,以像素为单位。

比如你的文本框只允许显示100像素长度的字符,如果超过这个大小的话,则以省略号...显示,就可以拿这个值与100比较。

UGUI获取文本的字符内容像素宽度 【转】的更多相关文章

  1. jquery获取文本框的内容

    使用jquery获取文本框的内容有以下几种: 1.根据ID取值(id属性): // javascript <script type="text/javascript"> ...

  2. python 2.7.5 获取文本关键字符所在行

    #!/usr/bin/env python #-*- coding: UTF- -*- from __future__ import print_function import time,os,sys ...

  3. windows程序设计获取文本框(窗口、对话框)文本

    就是这样一个简单的界面,窗口上重绘的对话框(这种写法参考我之前博文): 需要做到的就是点击确定,获取文本框中内容. // 处理对话框消息 INT_PTR CALLBACK NewDlgProc(HWN ...

  4. JavaScript 基于HTML5 canvas 获取文本占用的像素宽度

    基于HTML5 canvas 获取文本占用的像素宽度   by:授客 QQ:1033553122 直接上代码   // 获取单行文本的像素宽度 getTextPixelWith(text, fontS ...

  5. jQuery计算文本宽度和input标签根据输入字符动态自适应宽度的实现

    jQuery计算文本宽度的原理是利用html提供的<pre>标签,向dom中动态添加<pre>标签,标签里的内容就是要测试长度的文本,获取完长度之后再删除刚才添加的<pr ...

  6. 关于MFC文本框输入内容的获取 与 设置文本框的内容

    八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...

  7. httprequest存储的是字符内容 而文本内容是以字节形式上传的;所以普通的取值方式无法从httprequest取到值

    httprequest存储的是字符内容 而文本内容是以字节形式上传的;所以普通的取值方式无法从httprequest取到值

  8. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  9. java通过URL获取文本内容

    原文地址https://www.cnblogs.com/myadmin/p/7634262.html public static String readFileByUrl(String urlStr) ...

  10. js 获取浏览器显示内容的宽度和高度

      js获取浏览器显示内容的宽度和高度 CreateTime--2017年7月10日17:24:12Author:Marydon 1.获取浏览器屏幕显示d的网页宽度 /** * 得到浏览器显示的屏幕高 ...

随机推荐

  1. Hadoop2.7.3源码编译

    一.编译源码步骤演示详解 需求:官网下载的hadoop包,执行hadoop命令时,会有警告信息,为去除此警告,需要重新编译hadoop相应版本的源码,替换hadoop安装包lib目录下的native( ...

  2. 硬件IIC调试问题排查

    目录 沁恒蓝牙系列芯片中目前只有CH582/583以及208包含有硬件IIC外设,本文均使用582进行测试,其他沁恒芯片也可以参考本文排查. 先进行"常规"检查,检查相关引脚的焊接 ...

  3. Containerd 安装及使用(yum及源码)

    yum 安装containerd 一.下载源码库: wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker- ...

  4. gcc_to_use

    gcc 目录 gcc 概要 基本指令及功能(以gcc为例) gcc -gdb gcc -cmake 概要 GCC:GNU Compiler Collection(GUN 编译器集合),是GNU项目中符 ...

  5. [人脸识别]01-python环境准备-安装opencv

    安装opencv pip install opencv-python pip install  matplotlib pip install opencv-contrib-python --user

  6. sxt_(001_003)_spring_ioc

    一.spring简介 Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架.Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可 ...

  7. 在idea中查看jar包源码

    文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如,我准备看resin的jar,在桌面准备了一份 idea打开文件夹 在idea中file====>open=====> ...

  8. Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=MyAppId&ip=192.168.145.1 Cause Could not complete get operation

    Apollo配置中心拉取,通过单独打包解决 Get config services failed from http://阿里云局域网访问IP:8080/services/config?appId=M ...

  9. Oracle的Pctfree

    1.创建一张表 create table student( student_id number ); 但是在pl/sql中查看却是以下的建表语句: -- Create table create tab ...

  10. macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行

    黑色部分就是残留.是因为绘制后保留了轨迹. 解决办法是不在drawRect中做处理重新写NSView,新增方法 initWithFrame - (void)drawRect:(NSRect)dirty ...