आप अपने एकता स्थापना फ़ोल्डर में स्वचालित रूप से कोड उत्पन्न करने के लिए स्क्रिप्ट टेम्पलेट पा सकते हैं। मुझे "एकता / संपादक / डेटा / संसाधन / ScriptTemplates" के तहत टेम्पलेट मिलते हैं , जबकि अन्य स्रोतों ने इसे "एकता / संपादक / डेटा / संसाधन" के तहत पाया है ।
सामान्य UnityScript और C # टेम्प्लेट को क्रमशः "82-Javascript-NewBehaviourScript.js.txt" और "81-C # Script-NewBehaviourScript.cs.txt" फाइलों के रूप में पहचाना जाता है। यूनिटी ऑटो स्क्रिप्ट बनाने के तरीके को बदलने के लिए आप इन फ़ाइलों को सीधे संपादित कर सकते हैं।
आप अतिरिक्त टेम्पलेट भी शामिल कर सकते हैं, जो "प्रोजेक्ट" विंडो से "क्रिएट" का चयन करने पर दिखाई देगा । टेम्पलेट को अद्वितीय नंबरिंग की आवश्यकता नहीं दिखाई देती है, और मेनू पदानुक्रम निर्धारित करने के लिए प्रारंभिक स्ट्रिंग का उपयोग करें, जहां "__" एक सबमेनू को दर्शाता है। उदाहरण के लिए, "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" नाम की फाइल रखने से आपको एक अतिरिक्त " C # स्क्रिप्ट" मेनू मिलेगा , इस टेम्पलेट का उपयोग करके "एडिटर स्क्रिप्ट" बनाने का उप विकल्प होगा ।
करो नहीं मूल टेम्पलेट्स का नाम बदलने; इनका उपयोग सीधे इंजन द्वारा किया जाता है। उदाहरण के लिए, "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
}