Unity3d 需要一种在协同程序中使用按钮单击功能与GetKeyDown的方法吗

Unity3d 需要一种在协同程序中使用按钮单击功能与GetKeyDown的方法吗,unity3d,button,coroutine,keycode,animator,Unity3d,Button,Coroutine,Keycode,Animator,这个动画脚本可以工作,但是,在WHILE循环中,我需要使用一个用于mobile的UI按钮来代替Keycode输入,我还没有弄清楚这一点。我找到了一个关于在其周围放置包装器以使方法可用于单击事件的答案,但不知道在更新函数中应该如何工作。作为unity和c的新手,我花了很长时间才走到这一步,所以如果你能提供一个详细的答案或建议,我可以找回我的生活,如果你能,请帮助我 using System.Collections; using System.Collections.Generic; using U

这个动画脚本可以工作,但是,在WHILE循环中,我需要使用一个用于mobile的UI按钮来代替Keycode输入,我还没有弄清楚这一点。我找到了一个关于在其周围放置包装器以使方法可用于单击事件的答案,但不知道在更新函数中应该如何工作。作为unity和c的新手,我花了很长时间才走到这一步,所以如果你能提供一个详细的答案或建议,我可以找回我的生活,如果你能,请帮助我

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using SWS;

public class goat_question : MonoBehaviour
{
    private Animator anim;
    public GameObject player;
    public Text ResultText;
    public Text AnswerText;  
    public Text AnswerText2;
    public Button GoatButton;

  

    void Start()
    {
        anim = GetComponent<Animator>();
        Button btn = GoatButton.GetComponent<Button>();
        btn.onClick.AddListener(TaskOnClick);

    }

    void TaskOnClick()
    {
        Debug.Log("You have clicked the button!");
    }
   
    // Update is called once per frame
    void Update()

    {
        if (AnswerText.text.Equals(AnswerText2.text))

        {                                         

            StartCoroutine(GoatWalkPathCoroutine());        

        }

         IEnumerator GoatWalkPathCoroutine()
        {
            while (true)  
            {              

                    if (Input.GetKeyDown(KeyCode.K))  
                {
                    anim.Play("goat_hi_walk");
                    player.GetComponent<splineMove>().enabled = true;
                    yield return new WaitForSeconds(27);
                    anim.Play("goat_hi_licking");

                }
                yield return null;
            }

        }

    }

}

在UI按钮的单独脚本中,有一个名为isClicked的bool或其他内容,当按钮被单击时,将其设置为true。在这个主脚本中,您可以引用刚才制作的脚本,而不是Input.GetKey,您可以说,ifotherScript.isClicked。

我将以回复的形式提交我的评论,我不知道您是否阅读了我的描述。代码工作正常,函数的调用与您的更新和我的更新完全相同。问题不在于协同程序的运行,而是我在while循环中使用的条件是一个键码,它在移动设备上不起作用。我需要和UI按钮一起使用,但不知道如何在协同程序中单击按钮,或者解决方法是什么。这个问题没有解决。请看标题。合作项目进展顺利。这是关于需要用ui按钮单击来替换Keydown/keycode的问题。谢谢没有解决,我很抱歉。我删除了我的答案。我误解了这个问题。贾斯汀的回答帮你解决了吗?泰,是的。谢谢你的帮助。非常感谢,我相信这是答案,但正如我所说,我是c和unity的新手。我创建了脚本并添加了此代码,它在我的animator脚本中创建了一个错误。我相信这很简单。public类isclickedCoat:monobhavior{public bool isClicked;public void onbutton单击{isClicked=true;}