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 .. #endiflugar 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
}