我正在测试用脚本使一个立方体移动。我还为立方体制作了一个简单的滚动动画,只要我移动立方体就会激活。
但是当动画在检查器标签下被 "选中 "为激活时,立方体并没有移动。只有当我禁用动画时,立方体才会移动,因此当我移动立方体时,甚至无法看到动画是否正常工作。这个立方体是从Blender导入到Unity的。请建议我做错了什么。
脚本如下。这是一个非常简单的小测试文件,因此我把我的Unity和Blender文件也附在Dropbox上供参考,如果有帮助的话。谢谢你的帮助。
链接到Unity项目。
https:/www.dropbox.comshcvpjf26i31o1ellAABmLMqYV4tPiG7qruph2D4Ra?dl=0
Blender模型和动画的链接。
https:/www.dropbox.comsdeowh3yk5wpse1ubox.blend?dl=0
立方体的运动脚本。
public float speed = 10.0F;
Animator anim;
void Update()
{
float translation = Input.GetAxis("Vertical") * speed;
translation *= Time.deltaTime;
transform.Translate(0, 0, translation);
Animating(translation);
}
void Animating(float v)
{
bool roll = v != 0f;
anim.SetBool("Roll", roll);
}
我已经更新了这个项目,并把它放回dropbox上。
https:/dl.dropboxusercontent.comu9274763MechanimTester%20v2.zip。
我添加了一个新的emtpy gameobject,并将blender cube作为其子对象。
TestScript现在被附加到那个新的gameobject上并控制它的位置,现在动画只适用于子对象,所以动画不再干扰立方体的位置。
(以前发生的情况是动画修改了游戏对象的变换--现在由于它是一个子对象,所以它不会影响它的父对象,所以它不会重新设置整个游戏对象的位置)
这有意义吗? 加勒特