RichText.cs - 接口和生命周期处理 RichText.MarkItem.cs - 定义结构类型和对象池处理 RichText.MarkType.cs - 定义类型枚举 RichText.Utils.cs - 辅助函数 RichText.Analyzor.cs - 语法分析 RichText.Generator.cs - 生成数据结构 RichText.Drawer.cs - 绘制额外内容 RichText.LinkListener.cs - 链接点击响...
generator.Populate(m_Text.text, setting); } m_CurrentCharactersCount = generator.characterCount;//显示部分(生成的)的字符数量,有点坑m_CurrentUICharInfoList = generator.characters; m_CurrentUILineInfoList = generator.lines;//刷新m_CurrentLineStartIndexList, m_CurrentLineEndIndexList}// 对象重用略/...
str += item;//当前组合的字符TextComponent.text = str; width = generator.GetPreferredWidth(TextComponent.text, settings) / settings.scaleFactor;//当前文本宽度if(width > boundWidth)//说明这次添加的字导致了换行{stringline;//处理好的一行字if(isPunctuation(item))//判断是否为标点{ line = str.Subs...
settings.richText = true; settings.font = font; settings.fontSize = 32; settings.fontStyle =FontStyle.Normal; settings.verticalOverflow =VerticalWrapMode.Overflow;TextGeneratorgenerator = newTextGenerator(); generator.Populate("I am a string", settings);Debug.Log("I generated: " + generator.ver...
settings.richText = true; settings.font = font; settings.fontSize = 32; settings.fontStyle =FontStyle.Normal; settings.verticalOverflow =VerticalWrapMode.Overflow;TextGeneratorgenerator = newTextGenerator(); generator.Populate("I am a string", settings);Debug.Log("I generated: " + generator.ver...
其实应该还有另外的解决方案,比如TextMeshPro,感兴趣的小伙伴可以研究一下。 代码 using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; /// /// 字符串标点符号格式化 /// public...
这是因为在初始化时,会先初始化TextGenerator,如果Text为空,则会先按50个字来初始化,即50个字的UI Vertex和50个字的UICharInfo,这种可以不让它为空,或者填一个空格进去来组织。 三、GPU 1)当某个全屏UI打开时,建议将被背景遮挡住的其他UI进行关闭。
resizeTextMaxSize已调整大小的文本的最大大小。 resizeTextMinSize已调整大小的文本的最小大小。 richText在生成中允许富文本标记。 scaleFactor文本的缩放因子。在 Text 位于 Canvas 上并且画布缩放时非常有用。 textAnchor如何锚定生成的文本。 updateBounds文本生成器是否应根据生成的文本更新边界。
RichText.Analyzor.cs - 语法分析 RichText.Generator.cs - ⽣成数据结构 RichText.Drawer.cs - 绘制额外内容 RichText.LinkListener.cs - 链接点击响应处理 语法分析 标记结构 private class MarkItem { public int markId;public int markType;public string value;public int startIndex; // 起始字符位置...
这是因为在初始化时,会先初始化TextGenerator,如果Text为空,则会先按50个字来初始化,即50个字的UI Vertex和50个字的UICharInfo,这种可以不让它为空,或者填一个空格进去来组织。 三、GPU 1)当某个全屏UI打开时,建议将被背景遮挡住的其他UI进行关闭。