【问题标题】:Animation looping although Loop Time is unchecked尽管未选中循环时间,但动画循环
【发布时间】:2016-08-07 14:41:19
【问题描述】:
#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' 状态。

现在的问题是,当我单击鼠标左键时,从空闲到“攻击”的转换和模型执行所需的任务,然后从“攻击到空闲”转换,然后再次转换到“空闲到攻击”和进入循环。

我在animationClip中设置了LoopTime,Loopposeto unchecked,但还是一样。

我明白,上面的内容是循环的,因为'hit'参数永远不会变成

如果我将以下行添加到上面的 Update() 函数中,则不会发生转换。

anim.SetFloat("hit",0);

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

有什么帮助吗??请

提前致谢

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

    您可以将trigger 用于发生一次的事情,然后他们应该回到他们来自的状态,例如 hittingjumping

    anim.SetTrigger("hit");
    

    【讨论】:

    • 嘿,太好了,你节省了我很多搜索和时间..我不知道..无论如何谢谢:-)
    【解决方案2】:

    单次攻击动画控制参数应该是Trigger而不是float。这样动画师将保持空闲状态。

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

    【讨论】:

    • 谢谢,你也是 correcr=t.. :-)
    猜你喜欢
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2020-09-29
    • 1970-01-01
    • 2022-06-19
    • 2013-07-03
    • 2015-07-12
    相关资源
    最近更新 更多