Vous pouvez trouver les modèles de script pour générer automatiquement du code dans votre dossier d'installation Unity. Je trouve les modèles sous "Unity / Editor / Data / Resources / ScriptTemplates" , tandis que d' autres sources l' ont trouvé sous "Unity / Editor / Data / Resources" .
Les modèles UnityScript et C # génériques sont identifiés comme étant les fichiers "82-Javascript-NewBehaviourScript.js.txt" et "81-C # Script-NewBehaviourScript.cs.txt" , respectivement. Vous pouvez modifier directement ces fichiers pour changer la façon dont Unity génère automatiquement le script.
Vous pouvez également inclure des modèles supplémentaires, qui apparaîtront lorsque vous sélectionnez "Créer" dans la fenêtre "Projet" . Les modèles ne semblent pas nécessiter une numérotation unique et utilisent la chaîne initiale pour déterminer la hiérarchie du menu, où «__» désigne un sous-menu. Par exemple, avoir un fichier nommé "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" vous donnera un menu supplémentaire " C # Script" , avec l'option secondaire pour créer un "Script d'édition" en utilisant ce modèle.
Ne renommez pas les modèles d'origine; ceux-ci sont utilisés plus directement par le moteur. Par exemple, renommer "81-C # Script-NewBehaviourScript.cs.txt" vous empêchera d'ajouter de nouveaux scripts C # en tant que composants, directement via l'inspecteur.
Voici mon propre exemple, bien qu'il montre des pratiques particulières auxquelles je suis le plus habitué. Par exemple, je préfère avoir mon script d'éditeur personnalisé dans le même fichier que la classe cible, donc je l'encapsule dans #if UNITY_EDITOR .. #endif
, au lieu de le placer dans un dossier d'éditeur générique "ne pas compiler dans la construction".
Je ne sais pas s'il est même possible de fournir le contexte d'un espace de noms personnalisé; J'utilise simplement "NAMESPACE", car cela me permet de fournir le bon espace de noms après la création, en utilisant la fonction "find..replace all" généralement intégrée.
Le gabarit:
/* 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
}
Le résultat:
/* 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
}