我有一个Unity应用,它或多或少是Mapbox Unity SDK .unitypackage和我自己的代码(C#,附加到一个空的GameObject)中的Mapbox“ ZoomableMap”示例的集合。
当我在Unity编辑器中单击“播放”时,禁用Mapbox时,我的代码需要大约2秒钟的时间初始化(通过在“检查器”窗格中取消选中与Mapbox相关的所有内容)。
如果启用了Mapbox对象(启用或不启用自己的对象),Unity编辑器将挂起约30-70秒,然后地图出现且一切正常运行(通常为15-80fps)。大约有5-10%的时间,它会在初始化时陷入死循环,缩放到95%以上的内存使用率(我有16gb),然后崩溃(Unity Editor UI仍然完全无响应),直到发生以下两种情况之一: Unity Editor崩溃并显示一条错误消息,指出视频卡内存不足(并且指向nvidia的页面的无用链接几乎没有任何内容,除了“如果内存不足,程序将崩溃。”),或者我2-3分钟后,您将厌倦等待不可避免的崩溃并使用Windows Task Manager杀死Unity。
有什么方法可以使Mapbox初始化更加优雅,更加线程化/对后台友好,以便MY代码可以立即运行并执行,而Mapbox可以在后台进行初始化和后续更新(而无需冻结Unity Editor的UI)或我自己的程序的执行)?
Details:
Unity 2018.1.6f1-MLTP7 (from the MagicLeap SDK)
mapbox-unity-sdk_v1.4.5.unitypackage
注意:我可以发布更多详细信息,但我不完全确定如何描述在Inspector窗格中主要由具有数百种设置的样板库项目组成的内容。Unity是否有“转储明文(或标记的友好)表示对象的整个Inspector层次结构及其当前值,以方便将其张贴到隐藏在某处的StackOverflow“函数中?
注2:这显然是Mapbox-Unity(https://github.com/mapbox/mapbox-unity-sdk/issues/262)的已知问题。试图查找包含更改以改进其线程的较新版本(有人几乎在一年前就提交了补丁来解决该问题,但此补丁似乎已经消失了。)
注3:从北向有利位置看,墨西哥湾以45度角向上方约50公里处看,该地图绝对是巨大的……基本上,整个佛罗里达北部,乔治亚州,阿拉巴马州和南卡罗来纳州角度。诚然,这不是一个普通的用例(即使对于我自己的程序),但这是一个用例,绝非难以想象,而且我的程序至少必须能够优雅地处理。