
如果在Unity3D中使用动画,那么可能会遇到以相反方向播放给定动画的问题,所以在本文中介绍如何在不创建单独的动画剪辑的情况下在Unity3D中反转动画播放。
Unity的反向动画播放
现在为以下将用于播放动画的场景提供反转动画的示例。
- 动画师组件
- 动画组件
首先为立方体对象创建一个简单的动画,会在本文后面反转这个动画。

使用Animator组件反转动画播放
如果已将动画组件添加到游戏对象并使用控制器播放动画,此场景将很有帮助,基本上,需要将速度从1更改为-1以更改动画的方向。
一起来看看这是如何通过脚本和编辑器检查器窗口来完成。
通过编辑器检查器窗口反转动画
- 打开动画控制器并选择要反转动画播放的状态。
- 在检查器窗口中将速度更改为-1。
通过脚本反转动画
还可以使用脚本在Unity中反转动画播放,我们在动画控制器面板中创建一个浮动参数。

选择要反向播放动画的状态,在检查器窗口中将乘数选项选中为参数,并将方向参数链接到乘数。

编写以下脚本文件添加附加到游戏对象。
using UnityEngine;
using System.Collections;
public class AnimBehaviour : MonoBehaviour {
// Use this for initialization
void Start () {
Animator anim = gameObject.GetComponent<Animator> ();
anim.Play ("cubeanimation", -1, float.NegativeInfinity);
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.A)) {
Animator anim = gameObject.GetComponent<Animator> ();
// Reverse animation play
anim.SetFloat ("Direction", -1);
anim.Play ("cubeanimation", -1, float.NegativeInfinity);
}
}
}
现在,当游戏运行时,当按下A按钮时,动画将反向播放。

反向动画播放动画组件
如果想使用动画组件播放动画剪辑,则应将其标记为旧版。
将以下脚本附加到游戏对象,开始时,动画将向前播放,当按下A按钮时,动画将向后播放。
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
Animation anim;
// Use this for initialization
void Start (){
anim = GetComponent<Animation> ();
anim.Play ("cubeanimation");
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.A)) {
// Reverse animation play
anim ["cubeanimation"].speed = -1;
anim ["cubeanimation"].time = anim ["cubeanimation"].length;
anim.Play ("cubeanimation");
}
}
}
…
以上是3D天堂关于在Unity中的反向动画播放的全部内容,如果你有任何反馈,请随时在本页面下方留言。