Вы можете найти шаблоны сценариев для автоматической генерации кода в папке установки Unity. Я нахожу шаблоны в «Unity / Editor / Data / Resources / ScriptTemplates» , в то время как другие источники находят его в «Unity / Editor / Data / Resources» .
Общие шаблоны UnityScript и C # определяются как файлы «82-Javascript-NewBehaviourScript.js.txt» и «81-C # Script-NewBehaviourScript.cs.txt» соответственно. Вы можете напрямую редактировать эти файлы, чтобы изменить способ, которым Unity автоматически генерирует скрипт.
Вы также можете включить дополнительные шаблоны, которые появятся при выборе «Создать» в окне «Проект» . Шаблоны не появляются требуют уникальной нумерации, и использовать исходную строку для определения иерархии меню, где «__» обозначает подменит. Например, наличие файла с именем «81-C # Script__Editor Script-NewBehaviourScript.cs.txt» даст вам дополнительное меню « C # Script» с дополнительной опцией для создания «Редактора сценария» с использованием этого шаблона.
Вы не переименовывайте оригинальные шаблоны; они используются более непосредственно двигателем. Например, переименование «81-C # Script-NewBehaviourScript.cs.txt» не позволит вам добавлять новые сценарии C # в качестве компонентов непосредственно через инспектор.
Ниже приведен мой собственный пример, хотя он демонстрирует особые методы, которые я больше всего использую. Например, я предпочитаю, чтобы мой пользовательский скрипт редактора находился в том же файле, что и целевой класс, поэтому я инкапсулирую его #if UNITY_EDITOR .. #endif
, а не помещаю в общую папку редактора «не компилировать в сборку».
Я не уверен, возможно ли вообще предоставить контекст пользовательского пространства имен; Я просто использую «NAMESPACE», так как это позволяет мне обеспечить правильное пост-создание пространства имен, используя обычно встроенную функцию «find..replace all».
Шаблон:
/* 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
}
Выход:
/* 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
}