Unity的动画系统|Unity的老版Amimation动画使用(正序、倒序播放某一段动画)

Amimation动画可以重复播放某一段动画
Unity的动画系统|Unity的老版Amimation动画使用(正序、倒序播放某一段动画)
文章图片

1、设置
Unity的动画系统|Unity的老版Amimation动画使用(正序、倒序播放某一段动画)
文章图片

将带有动画的模型选择,如图所示,点击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,即可。
【Unity的动画系统|Unity的老版Amimation动画使用(正序、倒序播放某一段动画)】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;
}
}
Unity的动画系统|Unity的老版Amimation动画使用(正序、倒序播放某一段动画)
文章图片

    推荐阅读