Die Skriptvorlagen zum automatischen Generieren von Code finden Sie in Ihrem Unity-Installationsordner. Ich finde die Vorlagen unter "Unity / Editor / Daten / Ressourcen / ScriptTemplates" , während andere Quellen sie unter "Unity / Editor / Daten / Ressourcen" gefunden haben .
Die generischen UnityScript- und C # -Vorlagen werden als die Dateien "82-Javascript-NewBehaviourScript.js.txt" und "81-C # Script-NewBehaviourScript.cs.txt" identifiziert . Sie können diese Dateien direkt bearbeiten, um die Art und Weise zu ändern, in der Unity automatisch Skripte generiert.
Sie können auch zusätzliche Vorlagen, die angezeigt wird , wenn Sie wählen „Create“ aus dem „Projekt“ Fenster. Vorlagen scheinen keine eindeutige Nummerierung zu erfordern und bestimmen anhand der Anfangszeichenfolge die Menühierarchie, wobei "__" ein Untermenü bezeichnet. Wenn Sie beispielsweise eine Datei mit dem Namen "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" haben, erhalten Sie ein zusätzliches " C # Script" -Menü mit der Unteroption zum Erstellen eines dieser Vorlage "Editor-Skript" .
Haben nicht die Originalvorlagen umbenennen; Diese werden direkter vom Motor verwendet. Wenn Sie beispielsweise "81-C # Script-NewBehaviourScript.cs.txt" umbenennen , können Sie keine neuen C # -Skripte als Komponenten direkt über den Inspektor hinzufügen.
Unten ist mein eigenes Beispiel, obwohl es bestimmte Praktiken zeigt, an die ich am meisten gewöhnt bin. Zum Beispiel möchte ich mein benutzerdefiniertes Editor-Skript lieber in derselben Datei wie die Zielklasse haben, also kapsle ich es ein #if UNITY_EDITOR .. #endif
, anstatt es in einem generischen Editorordner "Nicht in Build kompilieren" abzulegen.
Ich bin nicht sicher, ob es überhaupt möglich ist, den Kontext eines benutzerdefinierten Namespace anzugeben. Ich verwende einfach "NAMESPACE", da dies mir ermöglicht, den korrekten Namespace nach der Erstellung mithilfe der allgemein integrierten Funktion "find..replace all" bereitzustellen.
Die Vorlage:
/* Created by Gnemlock */
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace NAMESPACE
{
public class #SCRIPTNAME# : MonoBehaviour
{
/// <summary>This method will be called at the start of each frame where this
/// instance of <see cref="NAMESPACE.#SCRIPTNAME#"/> is enabled.</summary>
void Update ()
{
#NOTRIM#
}
}
}
namespace NAMESPACE.UTILITY
{
#if UNITY_EDITOR
[CustomEditor(typeof(#SCRIPTNAME#))] public class #SCRIPTNAME#Editor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
#SCRIPTNAME# s#SCRIPTNAME# = target as #SCRIPTNAME#;
}
}
#endif
}
Die Ausgabe:
/* Created by Gnemlock */
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace MyNamespace
{
public class UpdatedClass : MonoBehaviour
{
/// <summary>This method will be called at the start of each frame where this
/// instance of <see cref="MyNamespace.UpdatedClass"/> is enabled.</summary>
void Update ()
{
}
}
}
namespace MyNamespace.UTILITY
{
#if UNITY_EDITOR
[CustomEditor(typeof(UpdatedClass))] public class UpdatedClassEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
UpdatedClass sUpdatedClass = target as UpdatedClass;
}
}
#endif
}