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

兰州城乡建设局网站wordpress显示轮播图

兰州城乡建设局网站,wordpress显示轮播图,萧山人才网手机版,查企业哪个软件好推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好#xff0c;我是佛系工程师☆恬静的小魔龙☆#xff0c;不定时更新Unity开发技巧#xff0c;觉得有用记得一键三连哦。 一、前言 在日常开发中#xff0c;可能会遇到要判断Animation或者Anima… 推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好我是佛系工程师☆恬静的小魔龙☆不定时更新Unity开发技巧觉得有用记得一键三连哦。 一、前言 在日常开发中可能会遇到要判断Animation或者Animator动画播放是否结束的情况。 判断Animation是否结束可以这么写 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animation ani;void Update(){AnimationState state ani[Open];if (state.normalizedTime 1) {// 判断动画播放结束normalizedTime的值为0~10为开始1为结束。Debug.Log(动画播放完毕);}} }或者简单一点 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animation ani;void Start(){if(!ani.isPlaying){Debug.Log(没有播放动画或播放结束动画);}} }判断Animator是否结束可以这么写 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animator anir;void Start(){//获取动画层 0 指Base Layer.AnimatorStateInfo stateinfo anir.GetCurrentAnimatorStateInfo(0);//判断是否正在播放walk动画.if (!stateinfo.IsName(Base Layer.walk)){Debug.Log(没有播放walk动画或播放结束动画);}} }但是如果说要判断动画结束之后再执行某些事件就有些麻烦首先需要在Update里面一直判断是否播放完播放完再去执行事件。 消耗性能也不好管理所以就写了一个迭代器也就是协程来判断动画是否结束结束后执行回调函数。 二、Animation动画播放结束判断 2-1、第一种协程写法 代码参考 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animation ani;void Start(){PlayAnimation(ani, Open,() {Debug.Log(动画播放前执行代码);},() {Debug.Log(动画播放完执行代码);});}// 封装函数public void PlayAnimation(Animation animation, string clipName, Action startAct null, Action endAct null){StartCoroutine(PlayAnimationItor(animation, clipName, startAct, endAct));}/// summary/// Animation动画播放迭代器/// /summary/// param nameanimationAnimation组件/param/// param nameclipNameclip片段名/param/// param namestartAct委托函数/param/// param nameendAct委托函数/param/// returns/returnsIEnumerator PlayAnimationItor(Animation animation, string clipName, Action startAct, Action endAct){startAct?.Invoke();animation.Play(clipName);yield return new WaitForSeconds(animation[clipName].length);endAct?.Invoke();} }PS主要是使用了协程中的new WaitForSeconds也就是等待X秒这里就是等待动画播放的X秒后执行委托函数更加详细的协程可以参考我其他文章这里就不详细说明了。 2-2、第二种协程写法 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animation ani;void Start(){PlayAnimation(ani, Open,() {Debug.Log(动画播放前执行代码);},() {Debug.Log(动画播放完执行代码);});}// 封装函数public void PlayAnimation(Animation animation, string clipName, Action startAct null, Action endAct null){StartCoroutine(PlayAnimationItor(animation, clipName, startAct, endAct));}/// summary/// Animation动画播放迭代器/// /summary/// param nameanimationAnimation组件/param/// param nameclipNameclip片段名/param/// param namestartAct委托函数/param/// param nameendAct委托函数/param/// returns/returnsprivate IEnumerator PlayAnimationItor(Animation animation, string clipName, Action startAct, Action endAct){startAct?.Invoke();AnimationState animationState animation[clipName];animation.Play(clipName);yield return StartCoroutine(new WaitForEndOfAnim(animationState));endAct?.Invoke();} }// 实现WaitForEndOfAnim迭代器 public class WaitForEndOfAnim : IEnumerator {AnimationState m_animState;public WaitForEndOfAnim(AnimationState animState){m_animState animState;}public object Current{get{return null;}}public bool MoveNext(){return m_animState.enabled;}public void Reset(){} }这种方式实现WaitForEndOfAnim迭代器在动画播放完后执行后面的代码。 三、Animator动画播放结束判断 首先要明白Animator是动画状态机是用来控制动画片段然后去切换动画片段的如下图所示 所以说Animator默认就会开始播放一种动画不论是Idle动画还是Walk动画总会播放一种动画所以就不用像Animation去Play某一个动画了只需要判断当前动画是否播放完即可。 代码参考如下两种方法写一起了 using System; using System.Collections; using UnityEngine;public class AnimationPlayControl : MonoBehaviour {Animator ani;void Start(){PlayAnimation(ani, Open,() {Debug.Log(动画播放前执行代码);},() {Debug.Log(动画播放完执行代码);});}// 封装函数public void PlayAnimator(Animator animator, string clipName, Action startAct null, Action endAct null){StartCoroutine(PlayAnimationItor(animator, clipName, startAct, endAct));}/// summary/// Animation动画播放迭代器/// /summary/// param nameanimationAnimation组件/param/// param nameclipNameclip片段名/param/// param namestartAct委托函数/param/// param nameendAct委托函数/param/// returns/returnsprivate IEnumerator PlayAnimationItor(Animator animator, string clipName, Action startAct, Action endAct){startAct?.Invoke();AnimatorStateInfo animatorStateInfo animator.GetCurrentAnimatorStateInfo(0);yield return StartCoroutine(new WaitForEndOfAnimr(animatorStateInfo,clipName));endAct?.Invoke();}/// summary/// Animation动画播放迭代器/// /summary/// param nameanimationAnimation组件/param/// param nameclipNameclip片段名/param/// param namestartAct委托函数/param/// param nameendAct委托函数/param/// returns/returnsIEnumerator PlayAnimationItor2(Animator animator, string clipName, Action startAct, Action endAct){startAct?.Invoke();yield return new WaitForSeconds(animator.GetCurrentAnimatorClipInfo(0)[0].clip.length);endAct?.Invoke();} }// 实现WaitForEndOfAnim迭代器 public class WaitForEndOfAnimr : IEnumerator {AnimatorStateInfo m_animState;public WaitForEndOfAnimr(AnimatorStateInfo animState,string clipName){m_animState animState;}public object Current{get{return null;}}public bool MoveNext(){return m_animState.IsName(clipName);}public void Reset(){} }四、后记 结束本篇文章讲解了Animation和Animator动画播放结束的判断代码。 以及如何实现在Animation和Animator动画播放结束判断并且执行回调函数的实现。 你的点赞就是对博主的支持有问题记得留言 博主主页有联系方式。 博主还有跟多宝藏文章等待你的发掘哦 专栏方向简介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.w-s-a.com/news/548922/

相关文章:

  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言
  • 平谷建站推广广告投放平台主要有哪些
  • 网站备案掉了什么原因步骤怎么读
  • 徐州市建设监理协会网站做一个公司官网需要多少钱
  • 网站开发学什么数据库做公司网站注意事项
  • 游戏开发网站建设国际战事最新消息
  • 达州+网站建设网站里自己怎么做推广
  • 看网站建设公司的网站案例熊掌号接入wordpress
  • 黄石下陆区建设局网站wordpress如何拖移小工具
  • 宁波网站建设信息网站开发看书
  • 网站建设优化价格北京优化seo排名
  • 微信网站建设公司费用高端网站建设 炫酷
  • 北京网站假设销售找客户最好的app
  • 做外贸需要关注的网站有什么好处宜州设计公司
  • 公司最近想做个网站怎么办陕西科强建设工程有限公司官方网站
  • 生态城门户网站 建设动态it外包收费
  • 网站项目评价老渔哥网站建设公司
  • 哈尔滨寸金网站建设价格178软文网
  • 一个网站建设的成本网站开发过程及要点
  • 监控视频做直播网站中国建筑人才网下载
  • 网站建设公司华网天下买送活动集团网站设计案例
  • 哪些网站比较容易做哪个网站做中高端衣服
  • 做php网站教程wordpress去水印
  • 深圳微网站建设公司哪家好潍坊专业做网站的公司
  • 网站的弹窗广告怎么做软件开发包括
  • 网站开发人员保密做最优秀的自己演讲视频网站
  • 一般做网站要多少钱怎样选择高性价比的建站公司
  • 免费私人网站建设软件高端网站设计平台高端网站设计企业