Es ist umständlich, Erweiterungscode im aktuellen Projekteditor zu speichern oder zu übermitteln
Die gleiche erweiterte Funktionalität muss in mehreren Projekten (Editoren) verwendet werden.
Während der Projektentwicklung muss gelegentlich eine Funktion vorübergehend verwendet werden. Wenn Sie sie jederzeit verwenden möchten, können Sie sie jederzeit deinstallieren
Designideen
Fügen Sie mithilfe der Prozessinjektion c/c++ dlleine in den aktuell ausgeführten Unity-Editor ein
Verwenden Sie die aufgerufene Funktionsschnittstelle, um beispielsweise die Dynamik von Unity c/c++ dllzu erhalten und die externe Erweiterung zu laden, die Sie laden möchtenmonomono_get_root_domaindomainc# dll
Wird in der Erweiterung c# dllaufgerufen EditorUtility.RequestScriptReload();, um die Neukompilierung des Unity-Editors auszulösen, wodurch die Implementierung im Editor überlastet wird, domainum externe c# dllFunktionen zu entladen
c# dllBinden Sie Ereignisse in Erweiterungen EditorApplication.update, um Vorgänge im Hauptthread abzuwickeln, zAssetDatabase.Refresh();
Mithilfe des Protokolls wird ein Teil der Kapselungsfunktion jsonrpcaufgerufen , mit dem das Erweiterungsfenster direkt im Unity-Editor angezeigt oder die Daten zur Anzeige an andere Editoren übertragen werden könnenc# dll