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