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 편집기 뒤에 있는 디자인 결정.

  • Godot 편집기의 C++ 코드에서 효율적으로 작업하는 방법.

이 가이드는 현재 또는 미래의 엔진 기여자를 대상으로 합니다. GDScript에서 편집기 플러그인을 생성하려면 대신 :ref:`doc_making_plugins`를 참조하세요.

더 보기

Godot를 처음 사용하신다면 계속하기 전에 :ref:`doc_godot_design_philosophy`를 읽어보시길 권장합니다. Godot 편집기는 C++로 작성된 Godot 프로젝트이므로 엔진 철학의 대부분이 편집기에 적용됩니다.

파트 개요

Godot 편집기는 Godot의 렌더러와 :ref:`UI system <doc_user_interface>`을 사용하여 그려집니다. GTK나 Qt와 같은 툴킷에 의존하지 않습니다. 이는 블렌더(Blender)와 같은 소프트웨어와 정신적으로 유사합니다. 툴킷을 사용하면 "기본" 모양을 쉽게 얻을 수 있지만, 상당히 무겁고 라이센스가 Godot의 라이센스와 호환되지 않습니다.

편집기는 C++로 완전히 작성되었습니다. GDScript 또는 C# 코드를 포함할 수 없습니다.

파일 구조

편집자의 코드는 Godot 소스 저장소의 editor/ 폴더에 완전히 독립적으로 포함되어 있습니다.

일부 편집기 기능은 :ref:`modules <doc_custom_modules_in_cpp>`을 통해서도 구현됩니다. 이들 중 일부는 내보내기 템플릿의 바이너리 크기를 줄이기 위해 편집기 빌드에서만 활성화됩니다. Godot 소스 저장소의 `modules/ <https://github.com/godotengine/godot/tree/master/modules>`__ 폴더를 참조하세요.

편집기의 몇 가지 중요한 파일은 다음과 같습니다.

scene/ 파일의 편집기 종속성

편집기 기능 작업을 할 때, scene/ 폴더에 있는 Godot의 GUI 노드에서 파일을 수정해야 할 수도 있습니다.

명심해야 할 한 가지 규칙은 scene/``와 같은 다른 폴더에 있는 ``editor/ 포함에 새로운 종속성을 도입해서는 **안 됩니다**는 것입니다. 이는 ``#ifdef TOOLS_ENABLED``를 사용하는 경우에도 적용됩니다.

코드베이스를 더 쉽게 따르고 더 독립적으로 만들기 위해 허용되는 종속성 순서는 다음과 같습니다.

  • editor/ -> scene/ -> servers/ -> core/

이는 editor/``의 파일이 ``scene/, servers/core/``의 포함에 종속될 있음을 의미합니다. 그러나 예를 들어 ``scene/``는 ``servers/``core/``의 포함에 종속될 수 있지만 ``editor/``의 포함에는 종속될 수 없습니다.

현재 scene/ 파일에는 ``editor/``에 대한 일부 종속성이 포함되어 있지만 제거되는 과정에 있습니다.

개발

편집기에서 빠르게 반복하려면 테스트 프로젝트를 설정하고 편집기를 컴파일한 후 :ref:`명령줄 <doc_command_line_tutorial>`에서 이를 여는 것이 좋습니다. 이렇게 하면 Godot를 시작할 때마다 프로젝트 관리자를 거칠 필요가 없습니다.