任何一组模型动画都是由若干帧组成的。例如模型动画的帧数为 150 帧,那么 150 帧的播放时间是多久呢?这可以使用方法 animation.animation["动画名称"].length 来获得,单位为秒。在 Game 视图中左上角处在拖动条中拖动滑块,动画将根据滑块的位置播放特定的动画帧,具体代码如下所示。
using UnityEngine; using System.Collections; public class CSharp : MonoBehaviour { public const string ANIM_NAME = "Take 001"; //动画名称 private GameObject obj = null; //模型对象 public float hSliderValue = 0.0f; //拖动条进度 public float animLegth = 0.0f; //动画播放长度 void Start() { obj = GameObject.Find("man"); //得到模型动画 animLegth = obj.animation.animation[ANIM_NAME].length; //得到动画播放长度 } void OnGUI() { string show = "当前动画长度:"+hSliderValue.ToString() +"(s)"+ " / " +animLegth.ToString()+"(s)"; //显示信息 GUILayout.Label(show); hSliderValue = GUILayout.HorizontalSlider(hSliderValue, 0.0F, 5.0F,GUILayout.Width(200)); //计算拖动条拖动数值 PlaySilderAnimation(obj,hSliderValue); //绘制动画帧 } public void PlaySilderAnimation(GameObject manObject,float times) { //播放动画 if(!manObject.animation.IsPlaying(ANIM_NAME)) { manObject.animation.Play(ANIM_NAME); } manObject.animation.animation[ANIM_NAME].time = times; //设置动画时间 } }
在上述代码中,我们使用 GUILayout.HorizontalSlider() 方法添加拖动条。拖动滑块后,该方法将返回拖动后的数值。使用 PlaySilderAnimation() 方法播放特定的帧动画,其中该方法的第一个参数表示模型的对象,第二个参数为特定帧的时间。
好了,Unity 动画的帧 就分享到这里,非常感谢你的来访。如果你喜欢本站,请不要忘记收藏本站,以便下次继续访问;也可以 关注站长微博 随时获取最新动态。你的支持就是我最大的动力!
转载请注明:爱维科斯 » Unity 动画的帧
如果文章对你有帮助,欢迎点击上方按钮打赏作者