最新消息:

Unity 动画的帧

任何一组模型动画都是由若干帧组成的。例如模型动画的帧数为 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 动画的帧

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者