void SaveAndDisposeWorldMap(ARWorldMap worldMap) { Log("Serializing ARWorldMap to byte array..."); var data = worldMap.Serialize(Allocator.Temp); Log(string.Format("ARWorldMap has {0} bytes.", data.Length)); var file = File.Open(path, FileMode.Create); var writer = new BinaryWriter(file); writer.Write(data.ToArray()); writer.Close(); data.Dispose(); worldMap.Dispose(); Log(string.Format("ARWorldMap written to {0}", path)); }
async Task <bool> SaveAndDisposeWorldMap(ARWorldMap worldMap) { string worldMapUUID; if (_sceneInfo.scene.worldMapUUID != null && _sceneInfo.scene.worldMapUUID != "") { worldMapUUID = _sceneInfo.scene.worldMapUUID; } else { worldMapUUID = System.Guid.NewGuid().ToString() + ".worldmap"; } Debug.Log("Using this worldmap uuid" + worldMapUUID); string path = FileDownloader.FilePath + worldMapUUID; Debug.Log("Using this path: " + path); Log("Serializing ARWorldMap to byte array..."); var data = worldMap.Serialize(Allocator.Temp); Log(string.Format("ARWorldMap has {0} bytes.", data.Length)); FileStream file = File.Open(path, FileMode.Create); var writer = new BinaryWriter(file); writer.Write(data.ToArray()); writer.Close(); worldMap.Dispose(); Log(string.Format("ARWorldMap written to {0}", path)); WWWForm form = new WWWForm(); form.AddField("SceneID", _sceneInfo.scene.sceneId); form.AddField("FileUUID", worldMapUUID); form.AddBinaryData("files[]", data.ToArray(), worldMapUUID); Debug.Log("SceneID: " + _sceneInfo.scene.sceneId); using (UnityWebRequest req = UnityWebRequest.Post($"{Configuration.SERVER_URL}/api/scenes", form)) { req.SendWebRequest(); if (req.isNetworkError || req.isHttpError) { Debug.Log(req.error); data.Dispose(); return(false); } while (!req.isDone) { await Task.Delay(100); } string result = req.downloadHandler.text; Debug.Log("result"); Debug.Log(result); } data.Dispose(); return(true); }