好的,我已经在这几个小时了。我看过整个Unity论坛,不知道为什么会这样。我无法让我的动画控制器在触发器上正确切换动画和空白状态
我需要在每次点击屏幕时从空闲状态触发单个动画,步行动画步骤,因此人移动1平方。我有一个处理我的水龙头的Inputmanager,我已经将我的空闲和动画状态连接到设置为触发器的转换。
每次敲击都会调用触发器,这在第一次运行时效果很好,这意味着动画完全运行然后进入空闲状态:
if(Input.touches.Length > 0 ){
Touch t = Input.GetTouch (0);
if(t.phase == TouchPhase.Ended){
if (objectDetected == false) {
//print ("tap");
animator.SetTrigger ("oneStep");
return swipes.tap;
}
objectDetected = false;
//tap should be done
}
return swipes.none;
}
我的问题是这只能在其他时间运行,这意味着第一,第三,第五等等。在这些水龙头上,动画师看起来应该是这样 - 它通过步行动画ONCE然后停止:
然而,第二,第四和其他每一次都会发生一些让它直接闲置的事情。我真的不知道发生了什么,但这是动画师:
我已尝试过所有功能 - 禁用退出时间,启用退出时间,在分接阶段结束时重置触发器,并在计时器上执行此操作:
IEnumerator waitForAnim(float wait) {
yield return new WaitForSeconds (wait);
//animator.SetTrigger ("backToIdle");
animator.ResetTrigger("oneStep");
print ("FINISHED!!!!");
}
然后
if (objectDetected == false) {
//print ("tap");
animator.SetTrigger ("oneStep");
StartCoroutine(waitForAnim(0.5f));
return swipes.tap;
}
我非常绝望。我怎样才能触发动画播放一次,然后在每次点击时进入空闲状态?怎么了?
两种转变: