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.

C# 전역 클래스

전역 클래스(스크립트라고도 함)는 Godot 편집기에 등록된 유형이므로 보다 편리하게 사용할 수 있습니다. GDScript <doc_gdscript_basics_class_name>`에서는 스크립트 상단에 있는 ``class_name` 키워드를 사용하여 이를 수행합니다. 이 페이지에서는 C#에서 동일한 효과를 얻는 방법을 설명합니다.

  • 전역 클래스는 노드만들기 리소스 추가 대화 상자에 표시됩니다.

  • :ref:`내보낸 속성 <doc_c_sharp_exports>`이 전역 클래스인 경우 검사기는 할당을 제한하여 해당 전역 클래스 또는 파생 클래스의 인스턴스만 허용합니다.

전역 클래스는 [GlobalClass] 속성으로 등록됩니다.

using Godot;

[GlobalClass]
public partial class MyNode : Node
{
}

경고

파일 이름은 대소문자 구분 방식으로 클래스 이름과 일치해야 합니다. 예를 들어 "MyNode"라는 전역 클래스의 파일 이름은 ``myNode.cs``가 아니라 ``MyNode.cs``여야 합니다.

MyNode 유형은 해당 유형의 이름과 동일한 이름을 가진 전역 클래스로 등록됩니다.

../../../_images/globalclasses_addnode.webp

MyNode 내보낸 속성에 대한 노드 선택 창은 할당 제한 사항과 일치하도록 씬의 노드 목록을 필터링합니다.

public partial class Main : Node
{
    [Export]
    public MyNode MyNode { get; set; }
}
../../../_images/globalclasses_exportednode.webp

사용자 정의 유형이 전역 클래스로 등록되지 않은 경우 할당은 사용자 정의 유형의 기반이 되는 Godot 유형으로 제한됩니다. 예를 들어, MySimpleSprite2D 유형 내보내기에 대한 검사자 할당은 Sprite2D 및 파생 유형으로 제한됩니다.

public partial class MySimpleSprite2D : Sprite2D
{
}

[GlobalClass] 속성과 결합하면 [Icon] 속성을 사용하여 클래스가 편집기에 표시될 때 표시할 아이콘에 대한 경로를 제공할 수 있습니다.

using Godot;

[GlobalClass, Icon("res://Stats/StatsIcon.svg")]
public partial class Stats : Resource
{
    [Export]
    public int Strength { get; set; }

    [Export]
    public int Defense { get; set; }

    [Export]
    public int Speed { get; set; }
}
../../../_images/globalclasses_createresource.webp

Stats 클래스는 글로벌 클래스로 등록된 커스텀 리소스입니다. :ref:`Stats 유형의 속성 내보내기 <doc_c_sharp_exports>`에서는 이 리소스 유형의 인스턴스만 할당할 수 있으며 검사기를 사용하면 이 유형의 인스턴스를 쉽게 생성하고 로드할 수 있습니다.

../../../_images/globalclasses_exportedproperty1.webp ../../../_images/globalclasses_exportedproperty2.webp

경고

Godot 편집기는 "만들기 New 노드" 또는 "만들기 New 씬" 대화 상자 창에서 접두사 "Editor"로 시작하는 이름으로 이러한 사용자 정의 클래스를 숨깁니다. 클래스는 클래스 이름을 통해 런타임에 인스턴스화할 수 있지만 Godot 편집기에서 사용하는 내장 편집기 노드와 함께 편집기 창에 의해 자동으로 숨겨집니다.