void Start()
    {
        //PhotonNetwork.ConnectUsingSettings("1");
        http_server = new Mod.HttpServer();
        http_server.Start();
        string     object_name = "building003";
        string     fname       = object_name + ".json";
        GameObject map         = GameObject.Find(object_name);

        Mod.DynamicBundle dynamicBundle = new Mod.DynamicBundle();
        dynamicBundle.initialize(map);
        File.Delete(fname);
        File.WriteAllText(fname, JsonConvert.SerializeObject(dynamicBundle));
        map.SetActive(false);
        Mod.DynamicBundle imported_obj;
        string            json = File.ReadAllText(fname);

        try
        {
            imported_obj = JsonConvert.DeserializeObject <Mod.DynamicBundle>(json);
            imported_obj.Load();
        } catch (System.Exception e)
        {
            Debug.Log(json.Length.ToString() + " characters in json file");
            Debug.Log(e.ToString());
        }
    }
示例#2
0
        public void initialize(GameObject _static_gameobject, DynamicBundle dynamicBundle)
        {
            static_gameobject = _static_gameobject;
            if (static_gameobject.transform.parent != null)
            {
                parent_instance_id = static_gameobject.transform.parent.GetInstanceID();
            }
            instance_id       = static_gameobject.transform.GetInstanceID();
            name              = static_gameobject.name;
            position          = static_gameobject.transform.position.ToString("F4");
            localScale        = static_gameobject.transform.localScale.ToString("F4");
            localEulerAngles  = static_gameobject.transform.localEulerAngles.ToString("F4");
            has_mesh_collider = static_gameobject.GetComponent <MeshCollider>() != null;
            MeshFilter   mf = static_gameobject.GetComponent <MeshFilter>();
            MeshRenderer mr = static_gameobject.GetComponent <MeshRenderer>();

            material_names = new List <string>();
            if (mf != null)
            {
                mesh_name = mf.sharedMesh.name;
                if (!dynamicBundle.meshes_table.ContainsKey(mesh_name))
                {
                    DynamicMesh dynamicMesh = new DynamicMesh();
                    dynamicMesh.initialize(mf.sharedMesh);
                    dynamicMesh.static_mesh_filter   = mf;
                    dynamicMesh.static_mesh_renderer = mr;
                    dynamicBundle.meshes_table.Add(mesh_name, dynamicMesh);
                }
            }
            if (mr != null)
            {
                foreach (var material in mr.sharedMaterials)
                {
                    material_names.Add(material.name);
                    if (!dynamicBundle.materials_table.ContainsKey(material.name))
                    {
                        DynamicMaterial dynamicMaterial = new DynamicMaterial();
                        dynamicMaterial.initialize(material);
                        dynamicBundle.materials_table.Add(material.name, dynamicMaterial);
                        Texture2D texture = (Texture2D)material.mainTexture;
                        if (texture != null)
                        {
                            if (!dynamicBundle.textures_table.ContainsKey(texture.name))
                            {
                                DynamicTexture dynamicTexture = new DynamicTexture();
                                dynamicTexture.initialize(texture);
                                dynamicBundle.textures_table.Add(texture.name, dynamicTexture);
                            }
                        }
                    }
                }
            }
        }