Bạn có thể tìm thấy các mẫu tập lệnh để tự động tạo mã trong thư mục cài đặt Unity của mình. Tôi tìm thấy các mẫu trong "Unity / Editor / Data / Resources / ScriptTemsheet" , trong khi các nguồn khác đã tìm thấy nó trong "Unity / Editor / Data / Resources" .
Các mẫu UnityScript và C # chung được xác định lần lượt là các tệp "82-Javascript-NewBehaviourScript.js.txt" và "81-C # Script-NewBehaviourScript.cs.txt" . Bạn có thể trực tiếp chỉnh sửa các tệp này để thay đổi cách Unity tự động tạo tập lệnh.
Bạn cũng có thể bao gồm các mẫu bổ sung, sẽ xuất hiện khi bạn chọn "Tạo" từ cửa sổ "Dự án" . Mẫu không xuất hiện để yêu cầu đánh số độc đáo, và sử dụng chuỗi ban đầu để xác định thứ bậc đơn, trong đó "__" biểu thị một menu con. Ví dụ: có một tệp có tên "81-C # Script__Editor Script-NewBehaviourScript.cs.txt" sẽ cung cấp cho bạn một menu "Tập lệnh C # " bổ sung , với tùy chọn phụ để tạo "Tập lệnh biên tập" bằng mẫu này.
Đừng không đổi tên các mẫu ban đầu; những cái này được sử dụng trực tiếp hơn, bởi động cơ. Ví dụ: đổi tên "81-C # Script-NewBehaviourScript.cs.txt" sẽ ngăn bạn thêm các tập lệnh C # mới làm thành phần, trực tiếp thông qua trình kiểm tra.
Dưới đây là ví dụ của riêng tôi, mặc dù nó cho thấy các thực tiễn cụ thể mà tôi tùy chỉnh nhất. Ví dụ, tôi thích có tập lệnh biên tập tùy chỉnh của mình trong cùng một tệp với lớp đích, vì vậy tôi gói nó vào #if UNITY_EDITOR .. #endif
, thay vì đặt nó vào thư mục trình soạn thảo "không biên dịch trong bản dựng" chung chung.
Tôi không chắc liệu thậm chí có thể cung cấp bối cảnh của một không gian tên tùy chỉnh hay không; Tôi chỉ đơn giản sử dụng "NnamPACE", vì điều này cho phép tôi cung cấp chính xác việc tạo hậu kỳ không gian tên, sử dụng chức năng "find..replace all" thường được xây dựng.
Bản mẫu:
/* 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
}
Đầu ra:
/* 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
}