我是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!");
}))
}
}
注意:我知道程序包中有一些拼写错误的变量。我已经修复了所有问题,并为我的环境设置了端点和查询。
答案 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中行号左侧的空白处,将出现红色圆圈,并且到达该行时,执行将停止)