Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 我应该在unity中的Button void OnClick()中放置什么引用_Unity3d - Fatal编程技术网

Unity3d 我应该在unity中的Button void OnClick()中放置什么引用

Unity3d 我应该在unity中的Button void OnClick()中放置什么引用,unity3d,Unity3d,当我开始玩游戏时,它无法跳转到下一个场景。它还会输出许多错误,一个错误重复多次,因为游戏对象“淡出”处于非活动状态,所以无法启动协同程序!这让我感到困惑,因为rawimage是全黑的,必须在函数onclick之前处于非活动状态。 我的问题是:我应该把这个脚本加载到淡出的rawimage中,还是创建一个空的游戏对象,然后将脚本放入其中。还有,如何解决这个问题-淡出错误。最后,这会是一个关于场景部分代码的问题吗?非常感谢您的帮助,谢谢 您的ButtonClicked()方法每帧执行一次,这会导致您

当我开始玩游戏时,它无法跳转到下一个场景。它还会输出许多错误,一个错误重复多次,因为游戏对象“淡出”处于非活动状态,所以无法启动协同程序!这让我感到困惑,因为rawimage是全黑的,必须在函数onclick之前处于非活动状态。

我的问题是:我应该把这个脚本加载到淡出的rawimage中,还是创建一个空的游戏对象,然后将脚本放入其中。还有,如何解决这个问题-淡出错误。最后,这会是一个关于场景部分代码的问题吗?非常感谢您的帮助,谢谢

您的
ButtonClicked()
方法每帧执行一次,这会导致您描述的不需要的行为

从文件中删除整个
Update()
方法及其主体,然后再次运行游戏

添加
gameObject.SetActive(false)
到您的
按钮clicked()
方法,以在单击时停用按钮


如果您已将
buttonclick()
方法附加到检查器中的
OnClick()
事件,如您在屏幕截图中所示,那么它应该可以正常工作。

您不希望每帧调用buttonclick。。所以不要把它放在更新中。为什么我不能把这个方法放在
void update()
中,这会导致错误??因为
update()
方法每一帧都会执行一次。观看一个教程,解释Unity如何编写自己的脚本,这可能是一个好主意。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class ToLoading : MonoBehaviour
{
    public Button toLoad;
    public RawImage fadeOut;
    public Text loading;

    // Start is called before the first frame update
    void Start()  //need to SetActive(false); ? if I set it false already in unity
    {

    }

    // Update is called once per frame
    void Update()
    {
        ButtonClicked();
    }
    public void ButtonClicked() // 
    {
        fadeOut.gameObject.SetActive(true);
        loading.gameObject.SetActive(true);
        StartCoroutine(ToNextScene());


    }

    //going to do: fade out> 2 secoonds > to next scene
    private IEnumerator ToNextScene()
    {

        yield return new WaitForSeconds(2);
        SceneManager.LoadScene("SceneForMovingAround");

    }
}