我有两个cs文件,Main.cs和Menu.cs.在Main.cs文件中的OnGUI事件上,我从Menu.cs调用方法。
private void OnGUI()
{
Menu menu=new Menu();
menu.Create_Menu();
}
在Menu.cs中。
public void Create_Menu ()
{
StartCoroutine(LoadCar());
}
private IEnumerator LoadCar()
{
//Load Object
Download download;
download=new Download();
GameObject go = null;
yield return StartCoroutine(LoadAsset("http://aleko-pc/3dobjects?key=1017&objecttype=1","car13",(x)=>{go = x;}));
}
我收到错误 NullReferenceException UnityEngine.MonoBehaviour.StartCoroutine(IEnumerator例程)
如果我在Main.cs类中复制私有IEnumerator LoadCar()方法,并从OnGUI调用它可以工作。
也许我不理解Coroutines的工作区域,任何人都可以帮助我吗?
答案 0 :(得分:0)
首先,每一帧调用 OnGUI 方法,我认为你不想每帧下载资产。
其次,您需要确保菜单来自MonoBehviour并添加到视图层次结构中。
更好的方法是将Menu作为组件添加到GameObject(可能与附加了 Main 脚本相同)并在{{3上调用 Create_Menu 菜单方法。