コード例 #1
0
    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));
    }
コード例 #2
0
    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);
    }