Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

GameObjectUtility.DuplicateGameObjects

Declaration

public static GameObject[] DuplicateGameObjects(GameObject[] gameObjects);

Параметры

Параметр Описание
gameObjects Массив GameObjects для дублирования.

Возвращаемое значение

GameObject[] Массив дублированных корней GameObject.

Описание

Дублирует массив GameObjects и возвращает массив новых корней GameObject.

Дубликаты GameObjects в Scene. Каждый GameObject будет находиться на том же уровне иерархии, что и его оригинальный GameObject, и они будут иметь одинакового родителя. Если есть какие-либо дочери или компоненты, которые принадлежат оригинальному GameObject, то дубликат также будет иметь их. Если родитель и дочь добавлены в входной массив, то только родитель будет дублироваться и возвращен (подобно тому, как Ctrl + D работает в редакторе).

Для дублирования одного GameObject используйте DuplicateGameObject. Для дублирования ассетов используйте AssetDatabase.CopyAsset.

using UnityEngine;
using UnityEditor;

public static class DuplicateGameObjectsExample { // Create context menu [MenuItem("Example/Duplicating GameObjects Example")] public static void DuplicatingGameObjectsExample() { // Creating the original GameObjects GameObject gameObject1 = new GameObject("gameObject1"); GameObject gameObject2 = new GameObject("gameObject2"); GameObject gameObject3 = new GameObject("gameObject3");

// Creating an array of all GameObjects GameObject[] gameObjectArray = { gameObject1, gameObject2, gameObject3 };

// Duplicating the array of GameObjects GameObject[] duplicatedGameObjectArray = GameObjectUtility.DuplicateGameObjects(gameObjectArray);

// Display the names of the duplicated GameObjects in the console Debug.Log("Duplicated GameObjects: "); for (int i = 0; i < duplicatedGameObjectArray.Length; i++) { Debug.Log(duplicatedGameObjectArray[i].name); } }

// Create context menu [MenuItem("Example/Duplicating Hierarchy Example")] public static void DuplicatingHierarchyExample() { // Creating the original GameObjects GameObject parent = new GameObject("parent"); GameObject child1 = new GameObject("child1"); GameObject child2 = new GameObject("child2");

// Assigning parents to children child1.transform.parent = parent.transform; child2.transform.parent = parent.transform;

// Creating an array of all GameObjects GameObject[] gameObjectArray = { parent, child1, child2 };

// Duplicating the array of GameObjects GameObject[] duplicatedGameObjectArray = GameObjectUtility.DuplicateGameObjects(gameObjectArray);

// Display the names of the duplicated GameObjects in the console // Only the parent will be returned Debug.Log("Duplicated GameObjects: "); for (int i = 0; i < duplicatedGameObjectArray.Length; i++) { Debug.Log(duplicatedGameObjectArray[i].name); } } }

Любые ошибки и предупреждения от операции дублирования отражаются в журнале и консоли.