Ви можете знайти шаблони сценаріїв для автоматичного генерування коду у папці установки 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" , ви отримаєте додаткове меню " С # скрипт" з підменю для створення "Редактора скриптів" за допомогою цього шаблону.
Ви НЕ перейменовуйте оригінальні шаблони; вони використовуються безпосередньо, двигуном. Наприклад, перейменування "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
}