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()); } }
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); } } } } } }