Anda dapat menemukan templat skrip untuk menghasilkan kode secara otomatis di folder instalasi Unity Anda. Saya menemukan templat di bawah "Unity / Editor / Data / Resources / ScriptTemplates" , sementara sumber lain menemukannya di "Unity / Editor / Data / Resources" .
Templat UnityScript dan C # generik diidentifikasi sebagai file "82-Javascript-NewBehaviourScript.js.txt" dan "81-C # Script-NewBehaviourScript.cs.txt" , masing-masing. Anda dapat langsung mengedit file-file ini untuk mengubah cara Unity menghasilkan skrip otomatis.
Anda juga dapat menyertakan templat tambahan, yang akan muncul ketika Anda memilih "Buat" dari jendela "Proyek" . Templat tampaknya tidak memerlukan penomoran yang unik, dan gunakan string awal untuk menentukan hierarki menu, di mana "__" menunjukkan submenu. Misalnya, memiliki file bernama "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" akan memberi Anda menu " C # Script" tambahan , dengan sub opsi untuk membuat "Editor Script" menggunakan templat ini.
Jangan tidak mengubah nama template asli; ini digunakan lebih langsung, oleh mesin. Misalnya, mengganti nama "81-C # Script-NewBehaviourScript.cs.txt" akan mencegah Anda menambahkan skrip C # baru sebagai komponen, langsung melalui inspektur.
Di bawah ini adalah contoh saya sendiri, meskipun itu menunjukkan praktik-praktik khusus yang paling saya sukai. Sebagai contoh, saya lebih suka memiliki skrip editor khusus saya di file yang sama dengan kelas target, jadi saya merangkumnya #if UNITY_EDITOR .. #endif
, daripada menempatkannya di folder editor generik "jangan dikompilasi dalam build".
Saya tidak yakin apakah mungkin untuk menyediakan konteks ruang nama kustom; Saya cukup menggunakan "NAMESPACE", karena ini memungkinkan saya untuk memberikan namespace post-creation yang benar, menggunakan fungsi "find..replace all" yang umum dibuat.
Templat:
/* 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
}
Hasil:
/* 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
}