返回顶部
首页 > 资讯 > 精选 >使用unity获取Text组件里text内容长度的案例
  • 858
分享到

使用unity获取Text组件里text内容长度的案例

2023-06-14 12:06:04 858人浏览 安东尼
摘要

小编给大家分享一下使用Unity获取Text组件里text内容长度的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!代码如下:/// <summary>    

小编给大家分享一下使用Unity获取Text组件里text内容长度的案例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

代码如下:

/// <summary>    /// 计算字符串在指定text控件中的长度    /// </summary>    /// <param name="message"></param>    /// <returns></returns>    int CalculateLengthOfText(string message,Text tex)    {        int totalLength = 0;        Font myFont = tex.font;  //chatText is my Text component        myFont.RequestCharactersInTexture(message, tex.fontSize, tex.fontStyle);        CharacterInfo characterInfo = new CharacterInfo();         char[] arr = message.ToCharArray();         foreach (char c in arr){            myFont.GetCharacterInfo(c, out characterInfo, tex.fontSize);             totalLength += characterInfo.advance;        }         return totalLength;    }

补充:用Unity的TextAsset读取TXT文档内容,将物品信息存入字典中

Text Asset 文本资源

Text Assets are a fORMat for imported text files. When you drop a text file into your Project Folder, it will be converted to a Text Asset. The supported text formats are:

文本资源是导入的文本文件的一个格式。当你拖入一个文本文件到你的项目时,他会被转换为文本资源。支持的文本格式有:

.txt .html .htm .xml .bytes

Properties 属性

Text

The full text of the asset as a single string.

物品属性分析

使用unity获取Text组件里text内容长度的案例

之后需要新建一个文本txt来存放物品的属性,这里以药品为例

TXT文档内容

使用unity获取Text组件里text内容长度的案例

每一行文本对应一种物品,用逗号分隔,每个值对应属性表里的每一列属性。

之后新建C#脚本解析文本内容

private TextAsset objectsInfoListText; // 新建TextAsset变量private Dictionary<int, ObjectInfo> objectInfoDict = new Dictionary<int,ObjectInfo>();void Awake(){    objectsInfoListText = Resources.Load("ObjectsInfoList") as TextAsset; // 从Resouces的path中读取到文件    ReadInfo();}void ReadInfo(){     string text = objectsInfoListText.text;  // 将文本内容作为字符串读取     string[] objInfoArray = text.Split('\n'); // 以\n为分割符将文本分割为一个数组     foreach (string str in objInfoArray)  // 遍历每一行并将每一个药品的值放入类对象中,并存入字典     {         ObjectInfo info = new ObjectInfo();         string[] propertyArray = str.Split(',');         int id = int.Parse(propertyArray[0]);         string name = propertyArray[1];         string icon_name = propertyArray[2];         string str_type = propertyArray[3];         ObjectType type = ObjectType.Drug;         switch (str_type)         {               case "Equip":                 type = ObjectType.Equip;                 break;             case "Mat":                 type = ObjectType.Mat;                 break;             case "Drug":                 type = ObjectType.Drug;                 break;         }         info.id = id; info.name = name;          info.icon_name = icon_name; info.type = type;         if (type == ObjectType.Drug)         {             int hp = int.Parse(propertyArray[4]);             int mp = int.Parse(propertyArray[5]);             int price_sell = int.Parse(propertyArray[6]);             int price_buy = int.Parse(propertyArray[7]);             info.hp = hp; info.mp = mp; info.price_sell = price_sell; info.price_buy = price_buy;         }         // 将物品信息存储到字典中         objectInfoDict.Add(id, info);     }}public enum ObjectType{    Drug,    Equip,    Mat,};public class ObjectInfo {    public int id;    public string name;    public string icon_name;    public ObjectType type;    public int hp;    public int mp;    public int price_sell;    public int price_buy;}

看完了这篇文章,相信你对“使用unity获取Text组件里text内容长度的案例”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 使用unity获取Text组件里text内容长度的案例

本文链接: https://lsjlt.com/news/270785.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作