Amimation动画可以重复播放某一段动画
1、设置 将带有动画的模型选择,如图所示,点击Apply。 2、将下面脚本挂在带有Amimation动画的Gameobject上 2.1方法一: using System.Collections; using System.Collections.Generic; using UnityEngine;
public class AnimationnPlay : MonoBehaviour { private Animation ani; private void Start() { ani = this.GetComponent(); } private void Update() { if (Input.GetKeyDown(KeyCode.W)) { PlayAnimation(“Idle”, 1f); } } private void PlayAnimation(string _name, float speed = 1f) { if (ani[_name] != null) { if (ani.isPlaying) { ani.Stop(); } if (speed == -1) { ani[_name].time = ani[_name].length;//从最后开始。 } else { ani[_name].time = 0; } ani[_name].speed = speed; print(ani[_name].speed + " : " + ani[_name].name + ": " + ani[_name].length); ani.Play(_name); } else { print(“请输入动画片段名字”); } } } 2.1.2、点一下W键,即可看到播放一下Idle动画片段。
2.1.3、补充一个,如果要让这一段动画倒着可以重复播放,怎么做? PlayAnimation(“Idle”, -1f); 上面调用方法,改为-1f,即可。
2.2方法二: public class Aniplay: MonoBehaviour { public bool AnimaState=false; private Animation anim; public string animName; private void Start() { anim = this.GetComponent(); } private void OnMouseDown() { if (AnimaState) { //动画是否正在播放。 if (anim.isPlaying==false) { //倒播。 anim[animName].speed = -1; //从最后开始播放。 anim[animName].time = anim[animName].length; } } else { anim[animName].speed = 1; } //开始播放 anim.Play(); AnimaState = !AnimaState; } }