无法使用触发器

时间:2016-11-19 20:47:48

标签: c# animation unity3d raycasting

好的,我已经在这几个小时了。我看过整个Unity论坛,不知道为什么会这样。我无法让我的动画控制器在触发器上正确切换动画和空白状态

我需要在每次点击屏幕时从空闲状态触发单个动画,步行动画步骤,因此人移动1平方。我有一个处理我的水龙头的Inputmanager,我已经将我的空闲和动画状态连接到设置为触发器的转换。

enter image description here

每次敲击都会调用触发器,这在第一次运行时效果很好,这意味着动画完全运行然后进入空闲状态:

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然后停止:

enter image description here

然而,第二,第四和其他每一次都会发生一些让它直接闲置的事情。我真的不知道发生了什么,但这是动画师:

enter image description here

我已尝试过所有功能 - 禁用退出时间,启用退出时间,在分接阶段结束时重置触发器,并在计时器上执行此操作:

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;

                }

我非常绝望。我怎样才能触发动画播放一次,然后在每次点击时进入空闲状态?怎么了?

两种转变:

enter image description here enter image description here

0 个答案:

没有答案