StartCoroutine获取错误NullReferenceException

时间:2014-04-08 15:15:53

标签: unity3d unityscript

我有两个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的工作区域,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

首先,每一帧调用 OnGUI 方法,我认为你不想每帧下载资产。

其次,您需要确保菜单来自MonoBehviour并添加到视图层次结构中。

更好的方法是将Menu作为组件添加到GameObject(可能与附加了 Main 脚本相同)并在{{3上调用 Create_Menu 菜单方法。