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

网站建设及域名东莞专业网站设计专业服务

网站建设及域名,东莞专业网站设计专业服务,汕头澄海天气预报,建设网站项目的目的是什么意思推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群#xff1a;398291828 大家好#xff0c;我是佛系工程师☆恬静的小魔龙☆#xff0c;不定时更新Unity开发技巧#xff0c;觉得有用记得一键三连哦。 一、前言 需求要实现Text的打字机效果#xff0c;一看居然… 推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群398291828 大家好我是佛系工程师☆恬静的小魔龙☆不定时更新Unity开发技巧觉得有用记得一键三连哦。 一、前言 需求要实现Text的打字机效果一看居然还没这类型的教程遂补上。 二、实现 2-1、使用DOTween插件实现效果 using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI;public class TextWriterDoTween : MonoBehaviour {private void Start(){DoTweenText(123456, 6, () {Debug.Log(用6秒显示6个字);});}/// summary/// 打字机效果显示文字/// /summary/// param nametext文字内容/param/// param nametime时间/param/// param nameaction结束后执行方法/paramvoid DoTweenText(string text, float time, UnityAction action){Text tmpText transform.GetComponentText();tmpText.text string.Empty;try{tmpText.DOText(text, time, true, ScrambleMode.None, null).SetEase(Ease.Linear).OnComplete(() { action(); });}catch (System.NullReferenceException){Debug.LogError(该对象不存在Text组件);}} } 效果图 2-2、实现Text的打字机效果 参考代码 using System.Collections; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI;/// summary /// 用于Text的打字机效果组件。 /// /summary [RequireComponent(typeof(Text))] public class TextWriter : MonoBehaviour {/// summary/// 打字机效果状态。/// /summarypublic enum TypewriterState{/// summary/// 已完成输出。/// /summaryCompleted,/// summary/// 正在输出。/// /summaryOutputting,/// summary/// 输出被中断。/// /summaryInterrupted}/// summary/// 打字机效果用时/// /summaryprivate float useTime;/// summary/// 打字机效果状态。/// /summaryprivate TypewriterState state TypewriterState.Completed;/// summary/// Text组件。/// /summaryprivate Text tmpText;/// summary/// 文本内容。/// /summarystring words;/// summary/// 显示间隔。/// /summaryint charsSecond;/// summary/// 用于输出字符的协程。/// /summaryprivate Coroutine outputCoroutine;/// summary/// 字符输出结束时的回调。/// /summaryprivate UnityAction outputEndCallback;void Awake(){tmpText GetComponentText();}private void Start(){OutputText(123456, 12, () {Debug.Log(用12秒显示6个字);});}void OnDisable(){// 中断输出if (state TypewriterState.Outputting){state TypewriterState.Interrupted;StopCoroutine(outputCoroutine);OnOutputEnd(true);}}/// summary/// 输出文字。/// /summary/// param nametext/param/// param nameonOutputEnd/parampublic void OutputText(string text, float time, UnityAction onOutputEnd null){// 如果当前正在执行字符输出将其中断if (state TypewriterState.Outputting){StopCoroutine(outputCoroutine);state TypewriterState.Interrupted;OnOutputEnd(false);}tmpText.text text;useTime time;outputEndCallback onOutputEnd;words text;// 如果对象未激活直接完成输出if (!isActiveAndEnabled){state TypewriterState.Completed;OnOutputEnd(true);return;}outputCoroutine StartCoroutine(OutputText());}/// summary/// 以不带淡入效果输出字符的协程。/// /summary/// param nameskipFirstCharacter/param/// returns/returnsprivate IEnumerator OutputText(){state TypewriterState.Outputting;// 先隐藏所有字符tmpText.text ;// 按时间逐个显示字符float timer 0f;Text textInfo tmpText;float speed useTime / words.Length;//计算出出现文字的间隔while (charsSecond words.Length){timer Time.deltaTime;if (timer speed){timer 0;charsSecond;tmpText.text words.Substring(0, charsSecond);}yield return null;}// 输出过程结束state TypewriterState.Completed;OnOutputEnd(false);}/// summary/// 完成正在进行的打字机效果将所有文字显示出来。/// /summarypublic void CompleteOutput(){if (state TypewriterState.Outputting){state TypewriterState.Completed;StopCoroutine(outputCoroutine);OnOutputEnd(true);}}/// summary/// 处理输出结束逻辑。/// /summary/// param nameisShowAllCharacters/paramprivate void OnOutputEnd(bool isShowAllCharacters){// 清理协程outputCoroutine null;// 将所有字符显示出来if (isShowAllCharacters){tmpText.text words;}// 触发输出完成回调if (outputEndCallback ! null){var temp outputEndCallback;outputEndCallback null;temp.Invoke();}} }效果图 2-3、使用TextMeshPro实现打字机效果 参考代码 using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI;namespace Tools {/// summary/// 打字机效果状态。/// /summarypublic enum TypewriterState{/// summary/// 已完成输出。/// /summaryCompleted,/// summary/// 正在输出。/// /summaryOutputting,/// summary/// 输出被中断。/// /summaryInterrupted}/// summary/// 用于TextMeshPro的打字机效果组件。/// /summary[RequireComponent(typeof(TextMeshProUGUI))]public class TextWriterTmp : MonoBehaviour{/// summary/// 打字机效果用时/// /summaryprivate float useTime;/// summary/// 打字机效果状态。/// /summaryprivate TypewriterState state TypewriterState.Completed;/// summary/// TextMeshPro组件。/// /summaryprivate TMP_Text tmpText;/// summary/// 用于输出字符的协程。/// /summaryprivate Coroutine outputCoroutine;/// summary/// 字符输出结束时的回调。/// /summaryprivate UnityAction outputEndCallback;/// summary/// 输出文字。/// /summary/// param nametext/param/// param nameonOutputEnd/parampublic void OutputText(string text, float time, UnityAction onOutputEnd null){// 如果当前正在执行字符输出将其中断if (state TypewriterState.Outputting){StopCoroutine(outputCoroutine);state TypewriterState.Interrupted;OnOutputEnd(false);}tmpText.text text;useTime time;outputEndCallback onOutputEnd;// 如果对象未激活直接完成输出if (!isActiveAndEnabled){state TypewriterState.Completed;OnOutputEnd(true);return;}outputCoroutine StartCoroutine(OutputText());}/// summary/// 完成正在进行的打字机效果将所有文字显示出来。/// /summarypublic void CompleteOutput(){if (state TypewriterState.Outputting){state TypewriterState.Completed;StopCoroutine(outputCoroutine);OnOutputEnd(true);}}private void Awake(){tmpText GetComponentTMP_Text();}private void Start(){OutputText(123456, 6, () {Debug.Log(用6秒显示6个字);});}private void OnDisable(){// 中断输出if (state TypewriterState.Outputting){state TypewriterState.Interrupted;StopCoroutine(outputCoroutine);OnOutputEnd(true);}}/// summary/// 以不带淡入效果输出字符的协程。/// /summary/// param nameskipFirstCharacter/param/// returns/returnsprivate IEnumerator OutputText(bool skipFirstCharacter false){state TypewriterState.Outputting;// 先隐藏所有字符tmpText.maxVisibleCharacters skipFirstCharacter ? 1 : 0;tmpText.ForceMeshUpdate();// 按时间逐个显示字符float timer 0f;TMP_TextInfo textInfo tmpText.textInfo;float speed useTime / textInfo.characterCount;while (tmpText.maxVisibleCharacters textInfo.characterCount){timer Time.deltaTime;if (timer speed){timer 0;tmpText.maxVisibleCharacters;}yield return null;}// 输出过程结束state TypewriterState.Completed;OnOutputEnd(false);}/// summary/// 设置字符的顶点颜色Alpha值。/// /summary/// param nameindex/param/// param namealpha/paramprivate void SetCharacterAlpha(int index, byte alpha){var materialIndex tmpText.textInfo.characterInfo[index].materialReferenceIndex;var vertexColors tmpText.textInfo.meshInfo[materialIndex].colors32;var vertexIndex tmpText.textInfo.characterInfo[index].vertexIndex;vertexColors[vertexIndex 0].a alpha;vertexColors[vertexIndex 1].a alpha;vertexColors[vertexIndex 2].a alpha;vertexColors[vertexIndex 3].a alpha;}/// summary/// 处理输出结束逻辑。/// /summary/// param nameisShowAllCharacters/paramprivate void OnOutputEnd(bool isShowAllCharacters){// 清理协程outputCoroutine null;// 将所有字符显示出来if (isShowAllCharacters){var textInfo tmpText.textInfo;for (int i 0; i textInfo.characterCount; i){SetCharacterAlpha(i, 255);}tmpText.maxVisibleCharacters textInfo.characterCount;tmpText.ForceMeshUpdate();}// 触发输出完成回调if (outputEndCallback ! null){var temp outputEndCallback;outputEndCallback null;temp.Invoke();}}} }效果图 三、后记 如果觉得本篇文章有用别忘了点个关注关注不迷路持续分享更多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.pierceye.com/news/867522/

相关文章:

  • 天长哪个广告公司做网站中国菲律宾汇率换算
  • 动漫在线制作网站wordpress get_template_part
  • 肇庆高端品牌网站建设住建部网站资质查询中宏建设集团
  • 扁平化网站模板下载莱西网站建设哪家好
  • 用vis做的简单网站网站建设需求方案pdf
  • 怎么免费做网站视频教学沈阳网站备案
  • 徐州有哪些网站制作公司太原住房和城乡建设部网站
  • 专门做摩托车的网站注册域名阿里云
  • 做个简单的网站建站公司费用
  • 网站建设举措网站免费建站方法
  • 遵义市双控体系建设网站wamp wordpress安装
  • 厦门的网站建设公司龙岗网站-建设深圳信科
  • 上海网站建设q.479185700強成都上界品牌设计事务所
  • 产品设计优秀网站做网站申请多少类商标
  • 中国行业网站贵州网站建设seo优化
  • 网站部兼容ie6没有防盗链的网站
  • google网站推广网站自助平台
  • 外贸自建站多久能出单wordpress的pdf阅读
  • 深圳东莞的网站建设公司网店代运营哪里好
  • 做费网站wordpress折叠代码
  • 分析海报的网站企业网站服务费怎么做记账凭证
  • 海南建设大厅网站888网创
  • aspnet网站开发实例项目河南网站建设推广
  • ppt免费模板大全网站微网站建设网站
  • 郑州网站建设七彩科技网络服务器配置设计
  • 专业企专业企业网站设计洛阳青峰网络
  • 网站开发需要多少钱如何销售管理系统需求分析
  • 西安网站建设查派9861云南网站建设
  • 做微商网站制作网站曝光率
  • 平价网站平价网站建设建设百度电话号码