尽管未选中循环时间,但动画循环

Animation looping although Loop Time is unchecked

#pragma strict

var anim : Animator;

function Start () {
    anim = GetComponent("Animator");

  }    

function Update () {    
    if (Input.GetButtonDown("Fire1")) 
    {
        anim.SetFloat("hit",1);      
    }
}

我已将 'hit' 浮点参数设置为 'attack' 状态,如果 'hit' > 0.1 的值,则从 'Idle state' 转换到 'attack' 状态.

现在的问题是,当我单击鼠标左键时,过渡从空闲变为 'attack' 并且模型执行所需的任务,然后从 'attack to Idle' 过渡然后再次过渡 'Idle to attack' 并进入循环。

我已经在animationClip中取消勾选LoopTime, Loop poseto,但是还是一样。

我明白了,上面是循环的,因为 'hit' 参数永远不会变成 < 0.1,所以每次条件为真并且转换恰好攻击状态。

如果我将下面的行添加到上面的 Update() 函数,那么转换永远不会发生。

anim.SetFloat("hit",0);

我不知道问题出在哪里,我该怎么办??,我想当我点击鼠标左键时,模型应该点击一次然后回到空闲状态,然后如果我点击鼠标左键再次点击, 那么只有它应该..

有什么帮助吗??请

提前致谢

你可以对发生一次的事情使用 trigger,然后他们应该回到他们来自的状态,比如 hittingjumping 或等等

anim.SetTrigger("hit");

单次攻击动画控制参数应该是Trigger而不是float。这样动画师就可以闲着了。

如果你想在完成动画后使用浮动,你必须将浮动值设置为 0。这样参数不会保持大于 0.1,这是浮动保持默认动画所必需的。