我有一个带有动画的FBX对象。该对象是带有动画的框,用于打开。我想做的是当用户单击一个按钮时,该框将打开(播放打开的动画),而当再次单击该按钮时,该框将关闭(向后播放打开的动画)。

在播放开始动画时,我再次单击按钮,开始动画停止,并且框开始关闭,这很好。
问题在于,当动画完成(打开)然后单击按钮关闭时,动画不会播放,它只会跳到没有动画的关闭框。

这是我的代码:

public class ClickBtn : MonoBehaviour {

    public GameObject box = null;
    bool reverse = false;

    private void OnMouseDown()
    {
        Debug.Log(reverse);

        if (!reverse)
        {
            box.animation["Take 001"].speed = 1;
        }
        else
        {
            box.animation["Take 001"].speed = -1;
        }

        reverse = !reverse;

        box.animation.Play("Take 001");
    }
}

最佳答案

您的animation.WrapMode设置错误(可能是WrapMode.Once,这是默认设置)。在您的情况下,您可以使用:

WrapMode.PingPong:在开始和结束之间来回乒乓球。

animation.wrapMode = WrapMode.PingPong;


介意你,你不需要

box.animation["Take 001"].speed = -1;


而且,这是自动完成的。

07-24 09:50
查看更多