コード例 #1
0
        /// <summary>
        /// Deserialize the specified serializedSelection and optionally destroy the originals.
        /// </summary>
        /// <param name="serializedSelection">Serialized selection.</param>
        /// <param name="destroyOriginals">If set to <c>true</c> destroy originals.</param>
        /// <returns>Returns the root level restored GameObjects</returns>
        public static GameObject[] Deserialize(SerializedSelection serializedSelection, bool destroyOriginals)
        {
            Deserializer deserializer      = new Deserializer(serializedSelection, destroyOriginals);
            var          clonedGameObjects = deserializer.Deserialize();

            return(clonedGameObjects);
        }
コード例 #2
0
            public SerializedSelection Serialize()
            {
                rootGameObjectsToCopy = GetRootGameObjects(rawGameObjects);
                allGameObjectsToCopy  = new List <GameObject>();
                rootGameObjectsToCopy.ForEach(x => {
                    List <GameObject> tree = new List <GameObject>();
                    GetTree(x, ref tree);
                    allGameObjectsToCopy.AddRange(tree);
                });
                allComponentsInGameObjectsToCopyHierarchy = GetAllObjects(rootGameObjectsToCopy);

                serializedSelection = new SerializedSelection();
                Serialize(rootGameObjectsToCopy);
                return(serializedSelection);
            }
コード例 #3
0
 // Checks if this data can be deserialized
 public static bool CanDeserialize(SerializedSelection serializedSelection)
 {
     if (serializedSelection.foundStatic)
     {
         return(false);
     }
     foreach (int index in serializedSelection.indexOfRootGOs)
     {
         var   serializedGameObject = serializedSelection.serializedGameObjects [index];
         Scene scene = EditorSceneManager.GetSceneByPath(serializedGameObject.scenePath);
         if (scene.isLoaded)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
 public Deserializer(SerializedSelection serializedSelection, bool destroyOriginals)
 {
     this.serializedSelection = serializedSelection;
     this.destroyOriginals    = destroyOriginals;
 }
コード例 #5
0
 // Checks if this data can be deserialized
 public static bool CanDeserialize(SerializedSelection serializedSelection)
 => !serializedSelection.foundStatic && serializedSelection.indexOfRootGOs
 .Select(index => serializedSelection.serializedGameObjects[index]).Select(
     serializedGameObject => SceneManager.GetSceneByPath(serializedGameObject.scenePath))
 .Any(scene => scene.isLoaded);