Unity iPhone ARKit-NullReferenceException:在需要对象实例的地方找到了空值

时间:2018-09-21 14:27:24

标签: c# xcode unity3d graphql

我是Unity和C#领域的新手。我无法向GraphQL端点发出网络请求。我正在使用 Unity ARKit 插件创建AR应用。我正在使用https://github.com/carlflor/unity_graphql_client软件包发出请求。在Xcode上运行应用程序时出现NullReferenceException: A null value was found where an object instance was required. at MyScript.Start () [0x00000]错误。

此代码来自软件包,它是引起问题的原因。任何帮助或指导表示赞赏。谢谢。

public class SomeGameObject : MonoBehaviour {

  public APIClient api;

  void Start () {
    StartCoroutine (api.QueryCall( (bool success) => {
        if (success)
          Debug.Log( "success!");
        else
          Debug.Log( "fail!");
    }))
  }
}

注意:我知道程序包中有一些拼写错误的变量。我已经修复了所有问题,并为我的环境设置了端点和查询。

1 个答案:

答案 0 :(得分:0)

您似乎没有初始化参考api。如果您的引用值为null,请调试代码,您需要在使用api之前对其进行初始化(我希望APIClient得到一个默认的构造函数,所以api=new APIClient()应该足够)。

public class SomeGameObject : MonoBehaviour {

  public APIClient api/*=new APIClient()*/;

  void Start () {
    api= new APIClient();//its better to do it here in case its constructor does dark magic
    StartCoroutine (api.QueryCall( (bool success) => {
        if (success)
          Debug.Log( "success!");
        else
          Debug.Log( "fail!");
    }))
  }
}

选中此项以使用Visual Studio&unity进行调试:https://unity3d.com/learn/tutorials/topics/scripting/debugging-unity-games-visual-studio

我没有在Visual Studio中打开实际的unityEditor实例来获得良好的屏幕截图,但是下面的屏幕截图上的面板上应该有一个按钮,上面写着“ connect to unity”(或类似的东西),并添加一些断点在Visual Studio中靠近变量的位置(单击Visual Studio中行号左侧的空白处,将出现红色圆圈,并且到达该行时,执行将停止) enter image description here