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

做普通网站需要多少钱湖南专业关键词优化服务水平

做普通网站需要多少钱,湖南专业关键词优化服务水平,织梦淘宝客网站,商城网站怎么做优化问题1:unity text显示文本时,符号可能显示在某行的开头的位置 问题2:打字机效果没有适配问题1的脚本 解决方法: 问题1:通过遍历text组件每一行数据(第二行开始),如果是符号,就在它之前的字符前…

问题1:unity text显示文本时,符号可能显示在某行的开头的位置
问题2:打字机效果没有适配问题1的脚本

解决方法:
问题1:通过遍历text组件每一行数据(第二行开始),如果是符号,就在它之前的字符前添加换行符
问题2:适配上述脚本

脚本1 解决文本符号显示问题
TextSymbolFit.cs

public class TextSymbolFit : Text{/// <summary>/// 用于匹配标点符号/// </summary>private readonly string strRegex = @"\p{P}";/// <summary>/// 用于存储text组件中的内容/// </summary>private System.Text.StringBuilder MExplainText = null;/// <summary>/// 用于存储text生成器中的内容/// </summary>private IList<UILineInfo> MExpalinTextLine;protected override void OnPopulateMesh(VertexHelper toFill){base.OnPopulateMesh(toFill);StartCoroutine(MClearUpExplainMode(this, text));}private IEnumerator MClearUpExplainMode(Text _component, string _text){_component.text = _text;yield return new WaitForEndOfFrame();MExplainText = new System.Text.StringBuilder(_component.text);MExpalinTextLine = _component.cachedTextGenerator.lines;int mChangeIndex;// 从第二行开始进行检测for (int i = 1; i < MExpalinTextLine.Count; i++){try{if (MExpalinTextLine[i].startCharIdx >= _component.text.Length) continue;//首位是否有标点bool match = Regex.IsMatch(MExplainText.ToString()[MExpalinTextLine[i].startCharIdx].ToString(), strRegex);if (match){mChangeIndex = MExpalinTextLine[i].startCharIdx - 1;// 解决联系多个都是标点符号的问题for (int j = MExpalinTextLine[i].startCharIdx - 1; j > 0; j--){match = Regex.IsMatch(MExplainText.ToString()[j].ToString(), strRegex);if (match){mChangeIndex--;}else{break;}}MExplainText.Insert(mChangeIndex, "\n");}}catch (Exception e){Debug.LogException(e);}}_component.text = MExplainText.ToString();}}

脚本2,适配TextSymbolFit脚本
UITextType.cs

public class UITextType : MonoBehaviour{public delegate void OnComplete();[SerializeField] float defaultSpeed = 0.05f;private Text label;private string finalText = string.Empty;private Coroutine typeTextCoroutine;private static readonly string[] uguiSymbols = { "b", "i" };private static readonly string[] uguiCloseSymbols = { "b", "i", "size", "color" };private OnComplete OnCompleteCallback;private void InitText(){if (label == null) label = GetComponent<Text>();}public void Awake(){InitText();}public void SetText(string text, float speed = -1){InitText();defaultSpeed = speed > 0 ? speed : defaultSpeed;finalText = ReplaceSpeed(text);label.text = "";if (typeTextCoroutine != null){StopCoroutine(typeTextCoroutine);typeTextCoroutine = null;}typeTextCoroutine = StartCoroutine(InnerTypeText(text));}public void SkipTypeText(){if (typeTextCoroutine != null){StopCoroutine(typeTextCoroutine);typeTextCoroutine = null;}label.text = finalText;OnCompleteCallback?.Invoke();}public IEnumerator InnerTypeText(string text){string currentText = "";int length = text.Length;float speed = defaultSpeed;bool tagOpened = false;string tagType = "";for (int i = 0; i < length; i++){currentText = "";//匹配speedif (text[i] == '[' && i + 6 < length && text.Substring(i, 7).Equals("[speed=")){string parseSpeed = "";for (int j = i + 7; j < length; j++){if (text[j] == ']'){break;}parseSpeed += text[j];}if (!float.TryParse(parseSpeed, out speed)){speed = defaultSpeed;}i += 8 + parseSpeed.Length - 1;continue;}bool symbolDetected = false;//匹配 <i> 或 <b>for (int j = 0; j < uguiSymbols.Length; j++){string symbol = string.Format("<{0}>", uguiSymbols[j]);if (text[i] == '<' && i + 1 + uguiSymbols[j].Length < length && text.Substring(i, 2 + uguiSymbols[j].Length).Equals(symbol)){currentText += symbol;i += (2 + uguiSymbols[j].Length) - 1;symbolDetected = true;tagOpened = true;tagType = uguiSymbols[j];break;}}//匹配富文本color格式if (text[i] == '<' && i + 1 + 15 < length && text.Substring(i, 2 + 6).Equals("<color=#") && text[i + 16] == '>'){currentText += text.Substring(i, 2 + 6 + 8);i += (2 + 14) - 1;symbolDetected = true;tagOpened = true;tagType = "color";}//匹配富文本size格式if (text[i] == '<' && i + 5 < length && text.Substring(i, 6).Equals("<size=")){string parseSize = "";for (var j = i + 6; j < length; j++){if (text[j] == '>'){break;}parseSize += text[j];}if (int.TryParse(parseSize, out _)){currentText += text.Substring(i, 7 + parseSize.Length);i += (7 + parseSize.Length) - 1;symbolDetected = true;tagOpened = true;tagType = "size";}}//匹配富文本结束 </i> </b> </size> </color>for (int j = 0; j < uguiCloseSymbols.Length; j++){string symbol = string.Format("</{0}>", uguiCloseSymbols[j]);if (text[i] == '<' && i + 2 + uguiCloseSymbols[j].Length < length && text.Substring(i, 3 + uguiCloseSymbols[j].Length).Equals(symbol)){currentText += symbol;i += (3 + uguiCloseSymbols[j].Length) - 1;symbolDetected = true;tagOpened = false;break;}}if (symbolDetected) continue;currentText += text[i];label.text += currentText + (tagOpened ? string.Format("</{0}>", tagType) : "");yield return new WaitForSeconds(speed);}typeTextCoroutine = null;OnCompleteCallback?.Invoke();}private string ReplaceSpeed(string text){return Regex.Replace(text, @"\[speed=\d+(\.\d+)?\]", "");}public bool IsSkippable(){return typeTextCoroutine != null;}public void SetOnComplete(OnComplete onComplete){OnCompleteCallback = onComplete;}}public static class UITypeTextUtility{public static void TypeText(this Text label, string text, float speed = 0.05f, UITextType.OnComplete onComplete = null){if (!label.TryGetComponent<UITextType>(out var typeText)){typeText = label.gameObject.AddComponent<UITextType>();}typeText.SetText(text, speed);typeText.SetOnComplete(onComplete);}public static bool IsSkippable(this Text label){if (!label.TryGetComponent<UITextType>(out var typeText)){typeText = label.gameObject.AddComponent<UITextType>();}return typeText.IsSkippable();}public static void SkipTypeText(this Text label){if (!label.TryGetComponent<UITextType>(out var typeText)){typeText = label.gameObject.AddComponent<UITextType>();}typeText.SkipTypeText();}}
http://www.hkea.cn/news/303463/

相关文章:

  • 手游门户网站建设appstore关键词优化
  • 齐河网站开发seo服务内容
  • 北京微信网站建设费用想卖产品怎么推广宣传
  • 网站上线的步骤厦门网站推广公司哪家好
  • 网站做app的软件有哪些百度一下你就知道下载
  • 界面设计的重要性百度seo关键词排名推荐
  • 股票做T网站直播营销
  • 北京手机网站建设公司排名技术优化seo
  • wordpress可爱的主题seo优化教程
  • 自己可以申请网站做外卖吗网站描述和关键词怎么写
  • 公司网站网页设计seo站长工具推广平台
  • 重庆南岸营销型网站建设公司哪家专业真实的网站制作
  • 郑州企业网站建设兼职推广渠道
  • 网站哪些数据优化大师的作用
  • 政府网站集约化建设总结营销软文推广平台
  • 学网站开发跟那个专业最相近百度站长平台注册
  • 网站开发python电脑培训班有哪些科目
  • 惠州响应式网站哪家好云盘搜索
  • spring做网站合肥seo排名收费
  • 做58网站怎么赚钱二十个优化
  • 做企业手机网站北京seo网站开发
  • 关于网站建设中原创文章的一些想法体育热点新闻
  • 天河做网站开发免费留电话号码的广告
  • 成都市金堂县网站建设免费seo在线工具
  • 计算机培训中心网站高端网站建设的公司
  • 成都建设路小学网站大作设计网站
  • 桂林创新大厦网站今日十大热点新闻事件
  • 做网站空间哪家好windows7系统优化工具
  • 网站建设首选公司seo推广一个月见效
  • 微信做模板下载网站有哪些推广网站要注意什么