当前位置: 首页 > news >正文

网站正在建设中_敬请期待快速做网站企业

网站正在建设中_敬请期待,快速做网站企业,天津ui设计公司,杭州网站网站建设推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好#xff0c;我是佛系工程师☆恬静的小魔龙☆#xff0c;不定时更新Unity开发技巧#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中会遇到Text的文本内容行首出现标点符号的情况#xf… 推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好我是佛系工程师☆恬静的小魔龙☆不定时更新Unity开发技巧觉得有用记得一键三连哦。 一、前言 在开发中会遇到Text的文本内容行首出现标点符号的情况跟文本书写习惯不太符合而且也不太美观比如这样 这篇文章就分享如何将行首不出现标点符号。 二、正文 2-1、实现思路 首先需要获取到每一行的文本对象然后使用正则表达式判断这一行中有没有标点符号。 并且这个标点符号在不在行首如果在行首的话就需要进行处理了。 处理一般是用换行接下来就看实现代码吧。 2-2、实现代码 using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.UI;public class NoPunctuation : MonoBehaviour {/// summary/// Text文本组件/// /summaryprivate Text txt;/// summary/// 用于匹配标点符号正则表达式/// /summaryprivate readonly string strRegex (\|\|\|\。|\《|\》|\|\|\”|\’|\、|\|\|\-);/// summary/// 用于存储text组件中的内容/// /summaryprivate System.Text.StringBuilder MExplainText null;/// summary/// 用于存储text生成器中的内容/// /summaryprivate IListUILineInfo MExpalinTextLine;private void Awake(){txt GetComponentText();OnTextChange();txt.RegisterDirtyLayoutCallback(OnTextChange);}private void OnTextChange(){StartCoroutine(MClearUpExplainMode(txt, txt.text));}/// summary/// 整理文字。确保首字母不出现标点/// /summary/// param name_componenttext组件/param/// param name_text需要填入text中的内容/param/// returns/returnsIEnumerator MClearUpExplainMode(Text _component, string _text){_component.text _text;// 如果直接执行下边方法的话那么_component.cachedTextGenerator.lines将会获取的是之前text中的内容而不是_text的内容所以需要等待一下yield return new WaitForEndOfFrame();// 获取Text生成器中的内容每行的索引、线高度、直线上Y的高度、这一行和下一行的距离MExpalinTextLine _component.cachedTextGenerator.lines;// 需要改变的字符序号int mChangeIndex -1;// 获得文本内容MExplainText new System.Text.StringBuilder(_component.text);for (int i 1; i MExpalinTextLine.Count; i){// 到最后一行了返回if (_component.text.Length MExpalinTextLine[i].startCharIdx)break;// 正则表达式判断首位是否有标点bool _b Regex.IsMatch(_component.text[MExpalinTextLine[i].startCharIdx].ToString(), strRegex);if (_b){mChangeIndex GetInsertPos(_component, MExpalinTextLine[i].startCharIdx - 1, MExpalinTextLine[i - 1].startCharIdx);// 在有标点的位置插入\n换行if (mChangeIndex 0)MExplainText.Insert(mChangeIndex, \n);}}_component.text MExplainText.ToString();}private int GetInsertPos(Text _component, int startCharIdx, int lastLineStartIdx){bool _b Regex.IsMatch(_component.text[startCharIdx].ToString(), strRegex);if (_b){startCharIdx _GetInsertPos(_component, startCharIdx - 1);if (startCharIdx lastLineStartIdx)startCharIdx 0;}return startCharIdx;}private int _GetInsertPos(Text _component, int startCharIdx){if (startCharIdx 0)return 0;bool _b Regex.IsMatch(_component.text[startCharIdx].ToString(), strRegex);if (_b){return _GetInsertPos(_component, startCharIdx - 1);}return startCharIdx;} }效果 三、后记 如果觉得本篇文章有用别忘了点个关注关注不迷路持续分享更多Unity干货文章。 你的点赞就是对博主的支持有问题记得留言 博主主页有联系方式。 博主还有跟多宝藏文章等待你的发掘哦 专栏方向简介Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感总结从零开始学习Unity的路线有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI系统UGUI全解析从UGUI的基础控件开始讲起然后将UGUI的原理UGUI的使用全面教学。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR虚拟仿真开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法插件介绍等Unity3D之日常开发日常记录主要是博主日常开发中用到的用到的方法技巧开发思路代码分享等Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中遇到的BUG和坑让后来人可以有些参考。
http://www.zqtcl.cn/news/111179/

相关文章:

  • 微网站建设市场如何做好平台推广
  • 网站不备案做优化小程序开发前景怎么样
  • 美丽说网站优化百度关键词优化
  • 同性男做的视频网站赶集网招聘最新招聘附近找工作
  • 做挖机配件销售的网站oa办公系统软件哪家好
  • 聊城设计网站商务网站的特点
  • 厦门做个网站多少钱工程建设范围
  • 百度推广官方网站在哪里制作网页
  • 济南集团网站建设方案沈阳手机网站制作
  • 网站备案号注销的结果做网站的外包能学到什么
  • 在线购物网站开发项目网站建设电话推广话术
  • 网站主体信息太原站扩建
  • 西平县住房和城乡建设局网站空间商网站
  • p2p网站建设cms一键生成图片
  • 甘肃省第八建设集团公司网站能够做物理题的网站
  • 团购网站建设方案建筑工程网校官网
  • 佛山建站网站模板小公司管理方法
  • 常德住房和城乡建设局网站做风险代理案源的网站
  • 手机网站开发人员选项wordpress加载媒体库
  • 做钓鱼网站用哪种编程语言张家界有实力seo优化费用
  • 如何做一个主题网站做网站必须有框架么
  • 建设网站需要什么知识上海高端网页设计
  • 电子商务网站建设基本流程公司网站建设平台
  • 域名没过期 网站打不开怎么办素马设计顾问讲解价格
  • 怎么做非法彩票网站贵州网站开发哪家便宜
  • 青岛市医疗保险网站wordpress七牛云
  • 哪个浏览器可以做网站查询网站的外链
  • 浅析社区网站的建设有了网站源码 怎么建设网站
  • 苏州网站排名优化系统网页设计师
  • 网站开发定制推广杭州河南省的网页制作