Você pode encontrar os modelos de script para gerar automaticamente o código na sua pasta de instalação do Unity. Eu encontro os modelos em "Unity / Editor / Data / Resources / ScriptTemplates" , enquanto outras fontes o encontraram em "Unity / Editor / Data / Resources" .
Os modelos genéricos de UnityScript e C # são identificados como os arquivos "82-Javascript-NewBehaviourScript.js.txt" e "81-C # Script-NewBehaviourScript.cs.txt" , respectivamente. Você pode editar diretamente esses arquivos para alterar a maneira como o Unity gera automaticamente o script.
Você também pode incluir modelos adicionais, que aparecerão quando você selecionar "Criar" na janela "Projeto" . Os modelos não parecem exigir numeração exclusiva e usam a sequência inicial para determinar a hierarquia do menu, onde "__" indica um submenu. Por exemplo, ter um arquivo chamado "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" fornecerá um menu adicional " C # Script" , com a subopção para criar um "Script do editor" usando este modelo.
Você não renomear os modelos originais; estes são usados mais diretamente, pelo mecanismo. Por exemplo, renomear "81-C # Script-NewBehaviourScript.cs.txt" impedirá que você adicione novos scripts C # como componentes, diretamente através do inspetor.
Abaixo está o meu próprio exemplo, embora ele demonstre práticas específicas às quais sou mais personalizado. Por exemplo, eu prefiro ter meu script de editor personalizado no mesmo arquivo que a classe de destino, então o encapsulo em #if UNITY_EDITOR .. #endifvez de colocá-lo em uma pasta de editor genérica "não compile na compilação".
Não tenho certeza se é possível fornecer o contexto de um espaço para nome personalizado; Eu simplesmente uso "NAMESPACE", pois isso permite que eu forneça o pós-criação correto do namespace, usando a função "find..replace all" comumente embutida.
O modelo:
/* 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
}
A saída:
/* 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
}