Otomatik olarak kod oluşturmak için komut dosyası şablonlarını Unity kurulum klasörünüzde bulabilirsiniz. Şablonları "Unity / Editor / Data / Resources / ScriptTemplates" altında bulurken, diğer kaynaklar "Unity / Editor / Data / Resources" altında bulmuşlardır .
Genel UnityScript ve C # şablonları, sırasıyla "82-Javascript-NewBehaviourScript.js.txt" ve "81-C # Script-NewBehaviourScript.cs.txt" dosyaları olarak tanımlanır . Unity'nin otomatik olarak komut dosyası oluşturma şeklini değiştirmek için bu dosyaları doğrudan düzenleyebilirsiniz.
Ayrıca seçtiğiniz zaman görünecek ek şablonlar içerebilir "Oluştur" dan "Proje" penceresinde. Şablonlar yok görünen eşsiz numaralandırma gerektirecek ve "__" bir alt menü gösterir menü hiyerarşisi, belirlemek için ilk dizeyi kullanın. Örneğin, "81-C # Script__Editor Komut Dosyası-NewBehaviourScript.cs.txt" adlı bir dosyaya sahip olmak , bu şablonu kullanarak bir "Editör Komut Dosyası" oluşturma alt seçeneğiyle birlikte ek bir " C # Komut Dosyası" menüsü verecektir .
Do not orijinal şablonlar adlandırmak; bunlar motor tarafından daha doğrudan kullanılır. Örneğin, "81-C # Script-NewBehaviourScript.cs.txt" olarak yeniden adlandırmak , doğrudan denetçi aracılığıyla bileşen olarak yeni C # komut dosyaları eklemenizi engeller.
Aşağıda kendi örneğim var, ancak en özel olduğum uygulamaları gösteriyor. Örneğin, özel düzenleyici komut dosyamın hedef sınıfla aynı dosyada olmasını tercih ediyorum, bu yüzden #if UNITY_EDITOR .. #endif
onu genel bir "derlemede derleme" düzenleyici klasörüne yerleştirmek yerine içine yerleştiriyorum.
Özel bir ad alanının bağlamını sağlamak mümkün olup olmadığından emin değilim; Ben sadece "NAMESPACE" kullanın, çünkü bu yaygın dahili "find..replace" işlevini kullanarak, oluşturma sonrası doğru ad alanı sağlamak sağlar.
Şablon:
/* 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
}
Çıktı:
/* 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
}