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();
}
}
}
Świetnie! Działa dobrze również z startscrollview! – Klamore74