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;
}
}