【问题标题】:Replay button script in unity3dunity3d 中的重播按钮脚本
【发布时间】:2017-04-30 22:27:14
【问题描述】:

我正在统一开发一个 android 应用程序,它允许用户输入语音或文本(通过文本字段),然后用户将获得与角色输入的单词匹配的动画,还有一个重复按钮如果用户触摸按钮,则重播动画。 但是现在我卡在重复按钮代码中,我不知道错误在哪里。

【问题讨论】:

  • 我希望重复按钮工作并重播动画,但它没有。
  • 根本不工作?您是否设置了日志(例如 OnGUI() 方法中的Debug.Log("OnGUI() is called");)?它被调用了吗?

标签: android unity3d


【解决方案1】:

您可以尝试在Start()方法中为按钮添加监听器:

void Start () {
    gameObject.GetComponent<Button>().onClick.AddListener(() =>
    {
        var animator = GetComponent<Animator>();
        animator.Play("BeginMove");
    });
}

【讨论】:

  • 在这一行:SomeButton.GetComponent
  • 您需要获取按钮的实例并为其添加监听器。类似于我编辑的答案。
  • 我试过了,但是控制台上显示了这个错误:MissingComponentException:没有'Animator'附加到“按钮(2)”游戏对象,但脚本正在尝试访问它。您可能需要为游戏对象“Button (2)”添加一个 Animator。或者您的脚本需要在使用之前检查组件是否已附加。
  • 我通过将动画组件添加到按钮 Inspector 来解决此问题...但是当我按下重复按钮时仍然没有工作,没有任何反应,请如果有人知道我该如何解决这个问题,请帮助我.
  • 有其他解决方案或代码我可以尝试而不是我写的吗?
【解决方案2】:

您能否尝试获取附加了动画组件的对象的引用。 您正在尝试从按钮脚本中获取动画组件,动画组件是否附加到游戏对象?
试试这个

    public words CurrentObjectWithAnimator; //Take Reference for Animator


        void OnGUI()
          {
            if (GUI.Button(new Rect(10, 70, 50, 30), "Replay"))
            {
              //CurrentObjectWithAnimator = GameObject.Find("Current object with animator");
                var animator = CurrentObjectWithAnimator.GetComponent<Animator>();
                animator.Play("BeginMove");
            }
            }
           }

【讨论】:

  • 你确定我在场景中创建按钮时必须使用 OnGUI!
猜你喜欢
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多