コード例 #1
0
        /// <summary>
        /// Loads the scene file from the specified file, discards current hierarchy and configures the loaded scene objects using the provided renderer.
        /// </summary>
        /// <param name="absolutePath">Absolute path to the scene file.</param>
        /// <param name="renderer">The renderer to use when configuring the loaded scene objects.</param>
        public static void LoadAndReplaceHierarchyAbsolute(string absolutePath, Renderer renderer)
        {
            SceneManager.currentRenderer = renderer;

            string jsonString = File.ReadAllText(absolutePath);

            var scene = JsonSerializer.Deserialize <SerializableScene>(jsonString);

            Hierarchy.Dispose();

            foreach (var savedObject in scene.SavedSceneObjects)
            {
                Hierarchy.Add(new SceneObject(savedObject));
            }

            for (int i = 0; i < Hierarchy.sceneObjects.Count; i++)
            {
                if (scene.SavedSceneObjects[i].Transform.ParentId != null)
                {
                    Hierarchy.sceneObjects[i].transform.parent = Hierarchy.sceneObjects.Find(so => so.transform.Id == scene.SavedSceneObjects[i].Transform.ParentId)?.transform;
                }
            }
        }
コード例 #2
0
 public SceneObject()
 {
     Id = Guid.NewGuid().ToString();
     Hierarchy.Add(this);
 }