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" 라는 파일 이 있으면이 템플릿을 사용하여 "편집기 스크립트" 를 만드는 하위 옵션과 함께 추가 " 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
}