Checkingifamovieclipisdone这是更新内部结构的简单代码。可悲的是,它对我不起作用。事件我已将环绕模式设置为永远固定!如果(trainGO.GetComponent()["Start"].time>=trainGO.GetComponent()["Start"].length){blackTrain.SetActive(true);redTrain.SetActive(false);}如何检查动画剪辑是否完成以便我可以完成一些工作。我不想使用WaitForSeconds方法。由于我在时间里徘徊,基本上每次都会播放一个新动画......PlayAnimation();//无论你调用或使用动画StartCoroutine(WaitForAnimation(animation));privateIEnumeratorWaitForAnimation(Animationanimation){while(animation.isPlaying)yieldreturnnull;//在这一点上,动画已经完成//所以在这一点上,做任何你想做的事...Debug.Log("Animationcompleted");你可以简单地用谷歌搜索关于这个例子的数千个QA,http://answers.unity3d.com/answers/37440/view.html如果你不完全理解Unity中的协程,退后一步,看看~8,000完整的初学者教程和QA中关于“团队中的协程”的任何一个。这确实是在Unity中检查动画的方式——这是一种标准技术,真的别无选择。你提到你想在Update()中做一些事情......你可能会做这样的事情:privateAnimationtrainGoAnime=ation;publicvoidUpdate(){if(trainGoAnimation.isPlaying()){Debug.Log("~动画还在播放");返回;}else{Debug.Log("~没有播放,正常进行...");我强烈建议你用协程来做;如果您尝试“始终使用更新”,您最终会遇到一个“结”。希望能帮到你。仅供参考,您还提到“实际上:在指定时间(时间/时间分别运行)。我必须播放动画,这就是我使用更新来检查时间并相应地运行动画的原因”这很容易做到,假设你想从现在开始运行3.721秒的动画......privatefloatwhenToRunAnimation=3.721;这很容易!以上就是C#学习教程:检查动画片段是否完成了分享的所有内容,如果对大家有用,还需要了解更多C#学习教程,希望大家多加关注——//跑马动漫,带有前后代码Invoke("StartHorseAnimation",whenToRunAnimation)privatevoidStartHorseAnimation(){Debug.Log("启动马动画协程...");StartCoroutine(_horseAnimationStuff());}privateIENumerator_horseAnimationStuff(){horseA.Play();Debug.Log("HORSEANIMEBEGINS");while(horseA.isPlaying)yieldreturnnull;Debug.Log("HORSEANIMEENDS");...当马动画结束时在这里做其他代码。.....当马动漫结束时在这里做其他代码......当马动漫结束时在这里做其他代码...}本文采集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
