unity IAP 错误排查:The object of type 'AsyncWebUtil' has been destroyed but you are still trying to access it.
正在开发的项目有超时断线重连的功能,这时候会重载场景,重载后如果调用IAP的支付代码会触发报错:
MissingReferenceException: The object of type 'AsyncWebUtil' has been destroyed but you are still trying to access it.
在进行各种排查后发现IAP在初始化后会在场景根目录中生成一个名叫: IAPUtil 的GameObject.
然而这个对象在Editor模式下是不可见的,刚好我们的重载逻辑会对重载前场景中存在的对象进行一次清除,于是就把这个不该删除的对象删除了,由此造成了上述错误,把该GameObject排除在删除对象外就OK了.
GameObject[] GameObjects = (FindObjectsOfType<GameObject>() as GameObject[]);
for (int i = 0; i < GameObjects.Length; i++)
{
if (GameObjects[i].name != "IAPUtil")
{
Destroy(GameObjects[i]);
}
}