动画循环虽然循环时间未选中

时间:2016-08-07 05:46:17

标签: unity3d unityscript

#pragma strict

var anim : Animator;

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

  }    

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

我已设置'点击'浮点参数'攻击'如果'值为' > 0.1,然后过渡到攻击'处于“空闲状态”状态。

现在的问题是,当我点击鼠标左键时,转换从空闲状态转移到“攻击”状态。并且模型执行所需的任务,然后转换从“攻击”进入“空闲”状态。然后又转换为“空闲”攻击'然后进入循环。

我在animationClip中设置了LoopTime,Loop poseto未选中,但仍然会发生同样的情况。

据我所知,上面的内容是循环播放的,因为'击中'参数永远不会变成< 0.1因此,每当条件成立并且转换发生在攻击状态时。

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

anim.SetFloat("hit",0);

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

任何帮助?请

提前致谢

2 个答案:

答案 0 :(得分:0)

你可以使用trigger来发生一次,然后他们应该回到他们来自的状态,如击中跳跃等等

anim.SetTrigger("hit");

答案 1 :(得分:0)

单次攻击动画控制参数应该是触发器而不是浮动。这样动画师就会闲着。

如果要使用浮动而不是完成动画,则必须将浮动值设置为 0 。这种方式参数不会保持大于0.1,这是浮动保持默认动画所必需的。

相关问题