unity 3d怎么设置动画不循环
默认就是循环的,怎么取消掉啊。求各位网友告知。谢谢啦 展开
Unity中动画创建后,将会生成一个后缀名为.anim的文件,里面包含着动画内容。
里面有一个属性,叫Loop Time。创建时它默认是勾选的。如果想去掉,可先找到你生成动画时创建的.anim文件。点击它,在右边Inspector栏里面找到Loop Time去掉即可。如图:
当然,如果想通过键盘控制动画执行,需要用到脚本。
这里有一个通过按下Z和X分别来控制动画的例子。新建一个脚本在任意路径,改名为AnimatorTest(或者其他的也可以,但以下代码第三行关键词class后面的AnimatorTest要改成当前文件名,否则将加载失败),打开,改为如下代码:
using UnityEngine;
public class AnimatorTest : MonoBehaviour
{
public Animator animator;
// Update is called once per frame
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Z)) //此处KeyCode.Z可改,比如改为KeyCode.S,然后按Z就改成了按S
{
animator.speed = 0;
}
if (Input.GetKeyDown(KeyCode.X)) //同上
{
animator.speed = 1;
}
}
}
原理很简单:先定义一个Animator对象(不用赋值,添加了这个脚本时里面有个框,将要控制动画的物体拖进去即可)。接下来,判断是否按下Z键,按下就将速度改为0(即停下)。若按下X键,就将速度改为1(即正常速度)。
当然也可以只通过一个键来实现,比如Z键:
using UnityEngine;
public class AnimatorTest : MonoBehaviour
{
public Animator animator;
// Update is called once per frame
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Z)) //此处KeyCode.Z可改,比如改为KeyCode.S,然后按Z就改成了按S
{
if (animator.speed == 1)
{
animator.speed = 0;
}
else
{
animator.speed = 1;
}
}
}
}
保存,接下来打开任意一个物体,在Inspector栏里拖入该脚本(注:最好新建一个物体,将脚本放那里。除非你能确定你这个已有的物体不会影响到代码实现(一般不会))。里面有一个前面是Animator的框。将要控制的物体拖进去。比如我这Main Camera有动画,那我就将脚本放到那里面,然后将Main Camera拖过去,如图:
然后就O了。
我知道这里不会再有人回答,这只是对前一条回答的完善,希望能帮到各位。
广告 您可能关注的内容 |