Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

스크립트 템플릿 만들기

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

../../_images/script_create_dialog_templates.webp

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

템플릿은 특정 노드 유형에 연결되어 있으므로 스크립트를 생성하면 해당 특정 노드 또는 해당 상위 유형 중 하나에 해당하는 템플릿만 표시됩니다. 예를 들어 CharacterBody3D에 대해 스크립트를 생성하는 경우 CharacterBody3D, Node3D 또는 노드에 대해 정의된 템플릿만 표시됩니다.

템플릿 위치시키기

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

편집기에 정의된 템플릿

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

  • Windows: %APPDATA%\Godot\script_templates\

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

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

Steam과 같이 공식 웹사이트가 아닌 다른 곳에서 Godot를 다운로드하는 경우 폴더가 다른 위치에 있을 수 있습니다. Godot 편집기를 사용하여 찾을 수 있습니다. Editor > Open Editor Data/Settings Folder``로 이동하면 파일 브라우저에 폴더가 열립니다. 해당 폴더 안에는 ``script_templates 폴더가 있습니다.

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

템플릿을 검색하는 디폴트 경로는 res://script_templates/ 디렉터리입니다. 코드와 편집기 모두를 통해 프로젝트 설정의 편집기 > 스크립트 > 템플릿 검색 경로에서 경로를 구성하여 변경할 수 있습니다.

프로젝트 안에서 script_templates 디렉터리를 찾을 수 없으면 무시됩니다.

템플릿 구성 및 명명

편집기와 프로젝트 정의 템플릿은 모두 다음과 같은 방식으로 구성됩니다.

template_path/node_type/file.extension

여기서:

  • ``template_path``는 이전 두 섹션에서 설명한 두 위치 중 하나입니다.

  • node_type``는 적용할 노드입니다(예: :ref:`노드 <class_Node>` 또는 :ref:`CharacterBody3D <class_CharacterBody3D>`). 이는 **대소문자를 구분합니다**. 스크립트가 적절한 ``node_type 폴더에 없으면 감지되지 않습니다.

  • file``는 템플릿에 대해 선택할 있는 사용자 정의 이름입니다(예: ``platformer_movement 또는 smooth_camera).

  • extension``는 템플릿이 적용될 언어를 나타냅니다(GDScript의 경우 ``gd, C#의 경우 ``cs``여야 함).

예를 들면:

  • script_templates/Node/smooth_camera.gd

  • script_templates/CharacterBody3D/platformer_movement.gd

기본 동작 및 재정의

기본적으로:

  • 템플릿 이름은 파일 이름과 동일합니다(확장자는 제외).

  • 설명이 비어 있습니다

  • 공백 들여쓰기는 4로 설정되었습니다.

  • 템플릿은 지정된 노드에 대한 기본값으로 설정되지 않습니다.

다음과 같이 파일 시작 부분에 메타 헤더를 추가하여 이 동작을 사용자 정의할 수 있습니다.

# meta-name: Platformer movement
# meta-description: Predefined movement for classical platformers
# meta-default: true
# meta-space-indent: 4

이 경우 이름은 지정된 사용자 정의 설명과 함께 "Platformer movement"로 설정되며 저장된 디렉토리에 있는 노드의 기본 템플릿으로 설정됩니다.

다음은 편집기 및 프로젝트 수준에서 사용자 정의 템플릿을 활용하는 예입니다.

../../_images/script_create_dialog_custom_templates.webp

참고

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

기본적으로 프로젝트 디렉터리 내의 모든 C# 파일은 컴파일에 포함됩니다. 빌드 오류를 방지하려면 스크립트 템플릿을 C# 프로젝트에서 수동으로 제외해야 합니다. Microsoft 설명서의 `빌드에서 파일 제외 <https://learn.microsoft.com/en-us/visualstudio/msbuild/how-to-exclude-files-from-the-build>`_을 참조하세요.

프로젝트별 템플릿과 동일한 수준을 갖고 내장된 템플릿과 동일한 이름을 갖는 편집기 수준 템플릿을 생성할 수 있으며, 모두 새로운 스크립트 대화 상자에 표시됩니다.

디폴트 템플릿

기본 템플릿을 재정의하려면 Node 디렉터리(또는 하위 유형만 재정의하려는 경우 더 구체적인 유형) 내의 편집기 또는 프로젝트 수준에서 사용자 정의 템플릿을 만들고 meta-default: true 헤더로 파일을 시작합니다.

동일한 노드 유형에 대해 동시에 하나의 템플릿만 기본값으로 설정할 수 있습니다.

GDScript와 C# 모두에 대한 기초 노드의 디폴트 템플릿은 여기에 보여져 있으므로 이를 기반으로 다른 템플릿을 만드는 데 사용할 수 있습니다:

# meta-description: Base template for Node with default Godot cycle methods

extends _BASE_


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


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
    pass

Godot 편집기는 CharacterBody2DCharacterBody3Dplugin 모두에 대해 ``basic_movement``와 같은 유용한 내장 노드 관련 템플릿 세트를 제공합니다. EditorPlugin.

템플릿 플레이스홀더 목록

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

기본 플레이스홀더

플레이스홀더

설명

_BINDINGS_NAMESPACE_

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

%CLASS%

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

%CLASS%

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

%BASE%

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

_TS_

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

타입 플레이스홀더

Godot 3.x에는 %INT_TYPE%, %STRING_TYPE%, %FLOAT_TYPE% 또는 ``%VOID_RETURN%``와 같이 템플릿을 사용하여 새 스크립트를 생성할 때마다 교체되는 GDScript 유형 힌트에 대한 자리 표시자가 있었습니다.

자리 표시자는 더 이상 Godot 4.x에서 작동하지 않지만, EditorSettings <class_EditorSettings>`의 ``text_editor/completion/add_type_hints` 설정이 비활성화된 경우 매개변수 및 반환 유형에 대한 유형 힌트는 몇 가지 기본 유형에 대해 자동으로 제거됩니다:

  • in

  • String[]

  • String[]

  • float[]

  • -> void

  • ``:=``가 ``=``로 변환됩니다.