【发布时间】:2019-05-13 15:46:21
【问题描述】:
我正在做一个 android 2d 平台游戏。在 Animator 中,一切都设置好了。在应用程序开始时一切正常,但是当我单击按钮时,布尔参数不会改变,所以我的动画不会向后播放。但是当我在动画器中勾选 bool 参数时,动画会正常播放。没有控制台错误。这是我的脚本。
我正在使用这个tutorial,我只需要第一部分(“开始游戏”动画部分)。我跟着每一步。可能我错过了什么。
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine.UI;
using UnityEngine;
public class UIManager : MonoBehaviour
{
public Animator optionsButton;
public void OpenSettings()
{
optionsButton.SetBool("isHidden", false);
}
}
我的目标是在按下选项按钮时向后播放动画,并且我想通过脚本更改 bool 参数。
【问题讨论】:
-
是否调用了
OpenSettins()方法?向它添加调试消息,以确保在单击按钮时调用它。我这样说是因为您可能没有在编辑器中分配按钮 onClick 方法。 -
我使用了 Debug.Log(Button Clicked);但同样的事情发生了;当我单击按钮时,参数不会更改,但调试消息会写入控制台。我希望至少有一条错误消息,但没有。
-
检查 animator 不为 null 并且 bool 参数的拼写是否正确,因为代码没有任何问题。
-
你能告诉我如何检查动画师不为空吗?好吧,我们可以同意这一点,因为我寻找了解决方案,但找不到任何东西。太奇怪了。正如我在互联网上查看的那样,可能是动画师中的一个状态是默认状态的副本的问题?发现了某种遗留问题和根本问题,但没有一个有效。我有一种感觉,这将是一个错误或非常简单的事情。我投票给第二个:D
-
您可以使用普通的
animator == null来检查它是否为空。我开始认为您的 Animator 中有单个剪辑,并且当您开始游戏/场景然后结束时它正在运行动画。如果是这样,您需要使用options.Play("nameofnanimation")重新启动它,也请查看CrossFade