2013-04-17 25 views

Odpowiedz

5

Nie można wymusić na Unity3D narysowania niestandardowego inspektora w innym miejscu niż okno inspektora.

Przy okazji można ręcznie wprowadzić metodę Editor przy użyciu metody Editor.CreateEditor. Ponieważ wyświetlany jest niestandardowy inspektor, wtedy powinno być możliwe utworzenie jego ręcznie metodą Window.OnGUI i użycie publicznej metody edycji edytora, aby narysować edytor wewnątrz okna.

Na przykład, jeśli został dołączony skrypt o nazwie CustomScript do GameObject i mają podobne Editor nazywa CustomScriptEditor, zakładając wybrałeś GameObject z hierarchii, ten kod wizualizację własnego inspektora wewnątrz EditorWindow:

using UnityEditor; 
using UnityEngine; 


public class TestWindow : EditorWindow 
{ 

    [MenuItem ("Window/Editor Window Test")] 
    static void Init() 
    { 
     // Get existing open window or if none, make a new one: 
     TestWindow window = (TestWindow)EditorWindow.GetWindow (typeof (TestWindow)); 
    } 

    void OnGUI() { 

     GameObject sel = Selection.activeGameObject; 

     CustomScript targetComp = sel.GetComponent<CustomScript>(); 

     if (targetComp != null) 
     { 
      var editor = Editor.CreateEditor(targetComp); 
      editor.OnInspectorGUI();    
     } 

    } 
} 
+0

Świetnie! Działa dobrze również z startscrollview! – Klamore74

Powiązane problemy