2017년 12월 9일 토요일

Customize Unity (C#)Script Templates


C# 스크립트를 만들면 Unity Editor는 아래 소스 코드를 생성합니다.
(파일명이 클래스의 이름으로 사용됩니다.)


using UnityEngine;
using System.Collections;

public class MyCustomScript : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }
}


스크립트 템플릿을 변경하려면 아래 경로에 저장된 스크립트 템플릿 파일을 수정해야 합니다.

Windows: C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
Mac /Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates


해당 경로에는 아래와 같은 여러개의 템플릿 파일들이 있습니다.

81-C# Script-NewBehaviourScript.cs.txt
83-Shader__Standard Surface Shader-NewSurfaceShader.shader.txt
83-Testing__EditMode Test C# Script-NewEditModeTest.cs.txt
83-Testing__PlayMode Test C# Script-NewPlayModeTest.cs.txt
84-Shader__Unlit Shader-NewUnlitShader.shader.txt
85-Shader__Image Effect Shader-NewImageEffectShader.shader.txt
86-C# Script-NewStateMachineBehaviourScript.cs.txt
86-C# Script-NewSubStateMachineBehaviourScript.cs.txt
87-Playables__Playable Behaviour C# Script-NewPlayableBehaviour.cs.txt
88-Playables__Playable Asset C# Script -NewPlayableAsset.cs.txt
90-Shader__Compute Shader-NewComputeShader.compute.txt


각각의 사용 용도는 아마 파일명에서 대충 유추할 수 있지 않을까 싶습니다.. ^^;

새로 생성되는 C#스크립트 템플릿을 가지고 싶다면 "81-C# Script-NewBehaviourScript.cs.txt" 파일을 편집하면 됩니다.
(일반 편집기로는 권한문제로 저장이 안될 수 있습니다.)

sudo nano "/Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt"




템플릿 파일의 기본 형태는 아래와 같이 되어 있을 겁니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class #SCRIPTNAME# : MonoBehaviour {

    // Use this for initialization
    void Start () {
        #NOTRIM#
    }

    // Update is called once per frame
    void Update () {
        #NOTRIM#
    }
}


위 소스에서 #SCRIPTNAME#는 파일명을 클래스 명으로 대체하는 부분입니다. 그대로 두는편이 좋겠지요.

#NOTRIM# .. no trim? 정확한 역할이 뭔지 모르겠습니다만~ 아마 공백을 유지하기 위함이 아닐까 생각해봅니다.


아래는 C# 템플릿의 모양을 바꿔본 예제입니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/**
 * @brief #SCRIPTNAME# Class
 */
public class #SCRIPTNAME# : MonoBehaviour 
{
    #region Public Fields
    #endregion

    #region Unity Methods
    // Use this for initialization
    void Start () 
    {
        #NOTRIM#
    }

    // Update is called once per frame
    void Update () 
    {
        #NOTRIM#
    }
    #endregion

    #region Private Methods
    #endregion
}



템플릿 파일을 수정/저장한 뒤 Unity Editor를 다시 실행하고 새로운 C# 파일을 생성하면 아래와 같이 생성된 소스를 확인할 수 있습니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/**
 * @brief Test3 Class
 */
public class Test3 : MonoBehaviour 
{
    #region Public Fields
    #endregion

    #region Unity Methods
    // Use this for initialization
    void Start () 
    {

    }

    // Update is called once per frame
    void Update () 
    {

    }
    #endregion

    #region Private Methods
    #endregion
}



* 인식 오류 문제를 위해 원본 템플릿 파일은 백업해 두는것이 좋겠습니다.
* Unity가 업데이트 될 때 수정한 템플릿이 덮어씌어질 수 있겠습니다. 수정한 파일도 백업할 필요가 있겠지요.

댓글 없음:

댓글 쓰기