2017-03-26 3 views

Antwort

1

Sie können so etwas wie folgt verwenden:

[MenuItem("YOUR_MENU_NAME/YOUR_SUBMENU_NAME/YOUR_METHOD_NAME %&n")] 
static void CreateAPrefab() 
{ 
    //Parent 
    GameObject prefab = (GameObject)PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath<Object>("Assets/Prefabs/TestPrefab.prefab")); 
    prefab.name = "TestPrefab"; 

    if(Selection.activeTransform != null) 
    { 
     prefab.transform.SetParent(Selection.activeTransform, false); 
    } 
    prefab.transform.localPosition = Vector3.zero; 
    prefab.transform.localEulerAngles = Vector3.zero; 
    prefab.transform.localScale = Vector3.one; 

    //Child 1 
    GameObject prefabChild1 = (GameObject)PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath<Object>("Assets/Prefabs/TestPrefabChild1.prefab")); 
    prefabChild1.name = "TestPrefabChild"; 

    prefabChild1.transform.SetParent(prefab.transform, false); 
    prefabChild1.transform.localPosition = Vector3.zero; 
    prefabChild1.transform.localEulerAngles = Vector3.zero; 
    prefabChild1.transform.localScale = Vector3.one; 

    //Child2... 
    //... 

    Selection.activeGameObject = prefab; 
} 

nicht using UnityEditor; enthalten Vergessen und das Skript in einem Editor/ Ordner oder #if UNITY_EDITOR/#endif um die Teile verwenden, um entweder zu platzieren Sie die Editor-Methoden. Außerdem habe ich eine Verknüpfung zu MenuItem mit %&n (Strg + Alt + N) hinzugefügt.

Wenn Sie die Prefabs ändern müssen, die das instanziierte Objekt bilden, können Sie versuchen, sie alle in Ihrem Projekt abzurufen (je nach Projekt möglicherweise schwer und schwer), wie sie here haben und eine Art Checkliste anzeigen Wählen Sie die Prefabs, die als Kinder in einem EditorWindow benötigt werden.

+0

Das ist genau das, was ich gesucht habe. – Tharnadar

+0

Froh, dass es geholfen hat! – Kardux

Verwandte Themen