【问题标题】:Unity - My Idle animation won't loopUnity - 我的空闲动画不会循环
【发布时间】:2016-08-25 08:34:49
【问题描述】:

我的武器上有 2 个动画,一个攻击动画和一个空闲动画,这里是动画组件:

当然,我需要我的空闲动画在攻击动画未激活时循环播放,但是当我玩游戏时,我的空闲动画只播放一次,但我的攻击动画播放正常,但是我需要我的空闲动画来循环

所以我尝试将“Wrap Mode”更改为“Loop”:

它完美地循环了我的空闲动画,但是一旦我攻击它就会循环我的攻击动画!

如果有帮助,这是我的近战脚本:

if( Input.GetButtonDown("Fire1"))
{
    // Attack animation
    Hatchet.GetComponent.<Animation>().Play("Attack");

    //Attack Function
    var hit : RaycastHit; 
    if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward), hit))
    {
        Distance = hit.distance;
        if (Distance < maxDistance)
        {
            hit.transform.SendMessage("ApplyDamage", theDamage, SendMessageOptions.DontRequireReceiver);
        }
    }
}

if(Hatchet.GetComponent.<Animation>() == false)
{
    Hatchet.GetComponent.<Animation>().CrossFade("Idle");
}

【问题讨论】:

    标签: javascript unity3d


    【解决方案1】:

    我认为使用 Animator (Window -> Animator) 会更容易,它可以让您以 GUI 格式设置动画的顺序和周期。

    https://unity3d.com/learn/tutorials/topics/animation/animator-controller

    【讨论】:

      【解决方案2】:

      攻击动画结束时播放空闲动画

      https://docs.unity3d.com/ScriptReference/AnimationState-time.html

      您将所有动画设置为循环心情,而不仅仅是空闲动画。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-03
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 1970-01-01
        • 2023-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多