Unity中动画创建后,将会生成一个后缀名为.anim的文件,里面包含着动画内容。
里面有一个属性,叫Loop Time。创建时它默认是勾选的。如果想去掉,可先找到你生成动画时创建的.anim文件。点击它,在右边Inspector栏里面找到Loop Time去掉即可。如图:
当然,如果想通过键盘控制动画执行,需要用到脚本。
这里有一个通过按下Z和X分别来控制动画的例子。新建一个脚本在任意路径,改名为纳毕亩AnimatorTest(或者其他的也可以,但以下代码第三行关键词class后面的AnimatorTest要改成当前文件名,否则将加载失败),打开,改为如下代码:
using UnityEnginepublic 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 UnityEnginepublic 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了。
我知道这里不会再有人回答,这只是对前一条回答的完善,希望能帮到各位。
一个 Unity3D 提取模型中的.anim 用代码怎么处渗衡理public class animator : MonoBehaviour {
Animator anim
AnimatorStateInfo animatorInfo
void Start () {
anim=GetComponent<Animator>()
}
void Update () {
animatorInfo=anim.GetCurrentAnimatorStateInfo(0)
if(animatorInfo.IsName("Take 001"))//注意这里指的不是稿坦动画的名字而是动画状态的名键喊桐字
{
anim.speed=2
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)