动画播放后重置为默认状态

时间:2019-02-09 20:11:41

标签: c# unity3d

所以这是动画之后我要做的事情,它应该自动回到默认状态:))抱歉,动画中的新手,这是我的代码

public GameObject bookLayout;
public GameObject panel;

public void openBook()
{
    if (bookLayout != null)
    {
        Animator animator = bookLayout.GetComponent<Animator>();
        if (animator != null)
        {
            bool isOpen = animator.GetBool("open");
            animator.SetBool("open", !isOpen);
        }
    }
}

问题是它只有在我单击它之后才返回默认状态^ _ ^

1 个答案:

答案 0 :(得分:0)

您所描述的被称为“动画事件”,实际上并不难实现。

首先,如果您的bookLayout对象尚未附加MonoBehavior脚本,请向其添加一个。然后在该脚本内添加一个 public 函数,其唯一职责是将状态设置为默认值。我们将此函数称为“ SetStateDefault”。然后确保在层次结构中选择了bookLayout,然后转到Windows-> Animation->并打开Animation选项卡。

取消折叠组成动画的精灵,以便您可以在时间轴中看到它们。 enter image description here

单击将带您进入动画结尾的按钮 enter image description here

在此示例中,动画的结尾位于第4帧。现在,单击“添加事件”按钮

enter image description here

然后在检查器中,转到“函数”下拉菜单,然后选择我们之前创建的那个公共函数,称为“ SetStateDefault”。

enter image description here

假设您的“ SetStateDefault”功能完成了应做的工作,那就应该是。请让我知道您是否有任何不清楚的地方。

enter image description here