스크립트 템플릿 만들기

Godot는 새 스크립트를 생성하는 중에 스크립트 생성 대화 상자에서 볼 수 있는 것처럼 스크립트 템플릿을 사용하는 방법을 제공합니다:

../../_images/script_create_dialog_templates.png

기본 스크립트 템플릿 세트가 기본적으로 제공되지만 프로젝트 및 에디터 별로 기존 템플릿을 수정하고 새 템플릿을 생성할 수도 있습니다.

템플릿 위치시키기

두 장소에서 템플릿을 관리할 수 있습니다.

에디터에서 정의된 템플릿

이 부류의 템플릿은 모든 프로젝트에서 전 세계적으로 사용할 수 있습니다. 템플릿의 위치는 각 OS 별로 결정됩니다:

  • Windows: %APPDATA%\Godot\script_templates\

  • Linux: $HOME/.config/godot/script_templates/

  • macOS: $HOME/Library/Application Support/Godot/script_templates/

만약 script_templates가 감지되지 않으면 Godot에서 기본 내장 템플릿 집합을 자동으로 생성하므로 실수로 경로를 덮어쓴 경우 기본 템플릿을 재설정하는 데 이 로직을 사용할 수 있습니다.

프로젝트에서 정의된 템플릿

템플릿을 검색하는 기본 경로는 res://script_templates/ 디렉토리입니다. 경로는 코드나 에디터를 통해 ProjectSettings에서 editor/script_templates_search_path 경로를 설정하여 변경할 수 있습니다.

프로젝트 안에 script_templates 디렉토리가 없으면 무시됩니다.

언어 지원 및 재정의 동작

특정 언어에 템플릿에서 스크립트를 생성하는 방법이 구현되어 있는지 여부에 따라 해당 언어에서 템플릿의 파일 확장자를 통해 인식할 수 있는 템플릿을 만들 수 있습니다. GDScript와 C#의 경우 확장자는 각각 gdcs여야 합니다.

참고

스크립트 템플릿은 일반 스크립트 파일과 동일한 확장자를 가집니다. 이로 인해 해당 템플릿을 프로젝트 내에서 실제 스크립트로 취급하는 스크립트 파서에서 문제가 발생할 수 있습니다. 이를 피하려면 빈 .gdignore 파일을 만들어 해당 디렉토리를 무시해야 합니다. 디렉토리는 더 이상 프로젝트의 파일 시스템 전체에서 볼 수 없지만 템플릿은 언제든지 외부 텍스트 에디터에서 수정할 수 있습니다.

내장 에디터 템플릿과 프로젝트 별 템플릿의 이름이 같은 경우 내장 에디터 템플릿은 프로젝트 별 템플릿에 가려집니다.

기본(Default) 템플릿

기본 템플릿은 항상 언어별로 동적으로 생성되며 설정하거나 재정의할 수 없지만 다른 템플릿을 만들기 위한 기반으로 사용할 수 있습니다.

extends %BASE%


# Declare member variables here. Examples:
# var a%INT_TYPE% = 2
# var b%STRING_TYPE% = "text"


# Called when the node enters the scene tree for the first time.
func _ready()%VOID_RETURN%:
    pass # Replace with function body.


# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta%FLOAT_TYPE%)%VOID_RETURN%:
#   pass

템플릿 플레이스홀더 목록

다음은 현재 구현된 기본 제공 템플릿 플레이스홀더의 전체 목록을 설명합니다.

기본 플레이스홀더

플레이스홀더

서술

%CLASS%

새 클래스의 이름(C#에서만 사용).

%BASE%

새 스크립트가 상속받는 기본 타입.

%TS%

들여쓰기 플레이스홀더. 들여쓰기에 사용되는 공백 문자의 정확한 유형과 수는 각각 EditorSettingstext_editor/indent/typetext_editor/indent/size 설정에 의해 결정됩니다.

타입 플레이스홀더

이 플레이스홀더는 정적 타이핑(static typing)이 있는 GDScript에만 관련이 있습니다. 이 플레이스홀더가 실제로 대체되는지 여부는 EditorSettingstext_editor/completion/add_type_hints 설정에 의해 결정됩니다.

플레이스홀더

%INT_TYPE%

: int

%STRING_TYPE%

: String

%FLOAT_TYPE%

: float

%VOID_RETURN%

-> void