时间:2021-05-19
我就废话不多说了,大家还是直接看代码吧~
/// <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.
之后需要新建一个文本txt来存放物品的属性,这里以药品为例
每一行文本对应一种物品,用逗号分隔,每个值对应属性表里的每一列属性。
之后新建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;}以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
SQLServer数据库如何获取TEXT字段的内容长度呢?本文我们就来介绍一下SQLServer数据库如何获取TEXT字段的内容长度的方法,是通过DATAL
本文实例为大家分享了Unity多语言转换工具的具体代码,供大家参考,具体内容如下说明遍历Unity场景和Prefab,提取Text组件文字,并导出Json表。可
SQLServer数据库如何获取TEXT字段的内容长度的方法,是通过DATALENGTH函数来实现的,接下来我们就通过DATALENGTH函数的语法及使用实例来
因为unit5.0的版本的原因,现在的text控件与之前版本的有了一些差异,接下来我们就来介绍如何在新版本的unity中修改及显示Text的值。ps:unity
子组件{{item.text}}exportdefault{data(){return{items:[{id:1,text:'第1段'},{id:2,text: