Puede encontrar las plantillas de script para generar código automáticamente en su carpeta de instalación de Unity. Encuentro las plantillas en "Unidad / Editor / Datos / Recursos / ScriptTemplates" , mientras que otras fuentes lo han encontrado en "Unidad / Editor / Datos / Recursos" .
Las plantillas genéricas UnityScript y C # se identifican como los archivos "82-Javascript-NewBehaviourScript.js.txt" y "81-C # Script-NewBehaviourScript.cs.txt" , respectivamente. Puede editar directamente estos archivos para cambiar la forma en que Unity genera automáticamente el script.
También puede incluir plantillas adicionales, que aparecerán cuando seleccione "Crear" en la ventana "Proyecto" . No parece que las plantillas requieran una numeración única, y use la cadena inicial para determinar la jerarquía del menú, donde "__" denota un submenú. Por ejemplo, tener un archivo llamado "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" le dará un menú adicional " C # Script" , con la subopción para crear un "Editor Script" usando esta plantilla.
No , no cambiar el nombre de las plantillas originales; estos son utilizados más directamente por el motor. Por ejemplo, cambiar el nombre de "81-C # Script-NewBehaviourScript.cs.txt" evitará que agregue nuevos scripts C # como componentes, directamente a través del inspector.
A continuación se muestra mi propio ejemplo, aunque demuestra prácticas particulares a las que estoy más acostumbrado. Por ejemplo, prefiero tener mi script de editor personalizado en el mismo archivo que la clase de destino, así que lo encapsulo en #if UNITY_EDITOR .. #endif
lugar de colocarlo en una carpeta de editor genérico "no compilar en la compilación".
No estoy seguro de si es posible proporcionar el contexto de un espacio de nombres personalizado; Simplemente uso "NAMESPACE", ya que esto me permite proporcionar el espacio de nombres correcto después de la creación, usando la función "encontrar ... reemplazar todo" comúnmente incorporada.
La plantilla:
/* 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
}
La salida:
/* 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
}