2015-07-21 54 views
1

所以,我建立了一个简单的汽车游戏,并附有一个脚本,允许它在两个轴上移动。我创建了一个动画,所以如果汽车颠倒了,可以按下'f'按钮并将汽车翻转回正常。不幸的是,一旦动画播放和汽车翻转到车轮上,汽车向前和向后移动,但不旋转。水平轴在动画后不工作

可能是什么问题?

下面是脚本:

var speed : float = 10.0; 
var rotationSpeed : float = 100.0; 
var CarFlip : Animator; 

function Start() { 
CarFlip.enabled = false; 
} 

function Update() { 
var translation : float = Input.GetAxis ("Vertical") * speed; 
var rotation : float = Input.GetAxis ("Horizontal") * rotationSpeed; 
translation *= Time.deltaTime; 
rotation *= Time.deltaTime; 
transform.Translate (0, 0, translation); 
transform.Rotate (0, rotation, 0); 
if(Input.GetKeyUp(KeyCode.F)){ 
    CarFlip.enabled = true; 
} 
if(Input.GetKeyDown(KeyCode.B)){ 
      speed = 30; 
     } 
if(Input.GetKeyUp(KeyCode.B)){ 
      speed = 15; 
     } 
} 
+0

请不要使用[汽车]标签。 _“'汽车”是指在R语言下的'汽车'包,不适用于驾驶汽车“ –

回答

0

我觉得动画仍处于启用状态使卡住的旋转。也许尝试这样的事情作为一个测试,看看是否设置动画为false将让汽车再次旋转:

if(Input.GetKeyDown(KeyCode.F)) 
{ 
    CarFlip.enabled = true; 
} 
if(Input.GetKeyUp(KeyCode.F)) 
{ 
    CarFlip.enabled = false; 
} 
1

的动画更新每一帧的转换所以在更新你的变化()正在被覆盖。

如果您想覆盖已完成的操作,则需要在LateUpdate()过程中应用更改。