WhiteEngine-专注图形渲染与游戏引擎技术的网站

新浪微薄腾讯微薄

最新碎语:暂无碎语

您的位置:WhiteEngine-专注图形渲染与游戏引擎技术的网站 >引擎相关> animation动画播放简单操作

animation动画播放简单操作

using UnityEngine; 

using System.Collections; 

using System.Collections.Generic; 

public class NpcAnimation : MonoBehaviour { Animation animation;

{

Animation animation; public string playingAnim;//正在播放的动画名字 

public bool nextStart =true;//是否开始播放下一个动画 

public float playingAnimTimeProgress;//正在播放的动画的播放进度,=1时播放完毕(动画播放模式为WrapMode.Once才有效,不确定) 

public bool isPlayAnim =true;//是否播放动画 

void Awake() {

{ this.animation = GetComponent<Animation> (); SetAllAnimtionWrapMode (WrapMode.Loop); //0.1秒后调用Update01f,然后一直间隔0.1秒后在调用         InvokeRepeating ("Update01f", 0.1f, 0.1f);

void Update01f() {

{ if(isPlayAnim) { if(nextStart) { playingAnim = RangeAll (); animation.CrossFade(playingAnim); nextStart =false; }

playingAnimTimeProgress = animation [playingAnim].normalizedTime; //如果动画播放完了,切换下一个 

    if(animation[playingAnim].normalizedTime>=0.97f) { nextStart =

{ nextStart =true; } } } /// <summary> /// 从全部动画里随机一个动画 /// </summary> /// <returns>The all.</returns> string RangeAll() { int cout = 0; List<AnimationState> list = new List<AnimationState> (); foreach (AnimationState state in animation) { cout++; list.Add(state); } int index = Random.Range (0,cout); return list[index].name; } /// <summary> /// 设置全部动画循环状态wrap mode. /// </summary> /// <param name="wm">Wm.</param> void SetAllAnimtionWrapMode(WrapMode wm) { foreach (AnimationState state in animation) { state.wrapMode = wm; }

/// <summary> 

///有多少个动画 

/// </summary> 

/// <returns>The animation count.</returns> 

int GetAnimationCount() {

{ int cout = 0; foreach (AnimationState state in animation) { cout++; } return cout;

/// <summary> 

/// 得到正在播放的动画名字. 

/// </summary> 

/// <returns>如果当前没有播放动画则返回空字符串.</returns> 

string GetPlayAnimation() {

{ foreach (AnimationState state in animation) { if(animation.isPlaying) { if(state.normalizedTime!=0) { return state.name; } } else { return ""; } } return ""; }

}


//如果是animator播放animation动画

//effectFont:GetComponent(Animator):Play(0)

//t:GetComponent(Animator):Play("FullCardBack",0,-0.1)

---

转载请注明本文标题和链接:《animation动画播放简单操作

分享到:

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交