클래스 지정자

클래스가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 지정하기 위해 UClass 선언시 사용되는 키워드입니다.

Windows
MacOS
Linux

클래스를 선언할 때, 선언부에 Class Specifier (클래스 지정자)를 붙이면 클래스가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 제어할 수 있습니다.

클래스 지정자

효과

Abstract

Abstract (추상) 지정자는 클래스를 "추상 베이스 클래스" 로 선언하여, 사용자가 이 클래스 액터를 월드에 추가하지 못하도록 합니다. 그 자체로는 의미가 없는 클래스에 쓰기 좋습니다. 예를 들어 ATriggerBase 베이스 클래스는 추상형이라도 그 서브클래스 ATriggerBox 가 추상형이 아니라면 레벨에 배치할 수 있습니다.

AdvancedClassDisplay

이 클래스의 모든 프로퍼티가 디테일 패널의 고급 섹션 에만 표시되도록 합니다. 개별 프로퍼티에서 이 옵션을 덮어쓰려면, 해당 프로퍼티에 SimpleDisplay 지정자를 사용하면 됩니다.

AutoCollapseCategories=(Category1, Category2, ...)

이 지정자는 나열된 카테고리에 대해, 부모 클래스 상의 AutoExpandCategories 지정자 효과를 무효화시킵니다.

AutoExpandCategories=(Category1, Category2, ...)

이 클래스의 오브젝트에 대해서는 언리얼 에디터 프로퍼티 창에 자동 확장되도록 할 카테고리를 하나 이상 지정합니다. 카테고리 없이 선언된 변수를 자동 확장하려면, 변수를 선언한 클래스 이름을 사용하면 됩니다.

Blueprintable

이 클래스를 블루프린트 생성이 가능한 베이스 클래스로 노출시킵니다. 기본값은 다른 식으로 상속되지 않는 한 NotBlueprintable 입니다. 이 지정자는 서브클래스에 상속됩니다.

BlueprintType

이 클래스를 블루프린트에서 변수로 사용할 수 있는 유형으로 노출시킵니다.

ClassGroup=GroupName

언리얼 에디터의 액터 브라우저 에서 그룹 뷰 옵션을 켰을 때 지정된 GroupName 내에서 이 클래스와 그 서브클래스를 포함시킬지 여부를 나타냅니다.

CollapseCategories

이 클래스의 프로퍼티는 언리얼 에디터 프로퍼티 창의 카테고리에 그룹으로 묶이지 않아야 함을 나타냅니다. 이 지정자는 자식 클래스에 전파되지만, 자식 클래스에서 DontCollapseCategories 지정자를 사용하여 덮어쓸 수 있습니다.

Config=ConfigName

이 클래스는 환경설정 (.ini) 파일에 데이터를 저장할 수 있음을 나타냅니다. config 또는 globalconfig 지정자로 선언된 클래스 프로퍼티가 있는 경우, 이 지정자는 그 프로퍼티를 해당 이름의 환경설정 파일에 저장하도록 합니다. 이 지정자는 모든 자식 클래스에 전파되며 무효화시킬 수 없으나, 자식 클래스에서는 환경설정 파일을 바꿀 수는 있습니다. config 지정자에 다른 ConfigName 으로 다시 선언해주면 됩니다. 일반적인 ConfigName 값은 "Engine", "Editor", "Input", "Game" 입니다.

Const

이 클래스의 모든 프로퍼티와 함수는 const 이며 const 로 노출됩니다. 이 지정자는 서브클래스에 상속됩니다.

ConversionRoot

루트 변환 시 서브클래스가 계층구조상의 첫 번째 루트 클래스의 자손 클래스로만 변환할 수 있도록 제한합니다.

CustomConstructor

생성자 선언의 자동 생성을 방지합니다.

DefaultToInstanced

이 클래스의 모든 인스턴스는 "instanced" 로 간주합니다. 인스턴스드 클래스(컴포넌트)는 생성 시 복제됩니다. 이 지정자는 서브클래스에 상속됩니다.

DependsOn=(ClassName1, ClassName2, ...)

나열된 모든 클래스는 이 클래스에 앞서 컴파일됩니다. ClassName 은 같은 (또는 기존) 패키지의 클래스를 지정해야 합니다. 다중 종속 클래스 지정은 단일 DependsOn 줄을 쉼표로 구분해서, 또는 각 클래스마다 별도의 DependsOn 줄을 사용해서 합니다. 컴파일러는 이미 컴파일된 클래스에 있는 것에 대해서만 알고있기 때문에, 다른 클래스에서 선언된 구조체 또는 enum 을 사용하는 클래스의 경우 중요합니다.

Deprecated

이 클래스는 폐기되어서 이 클래스의 오브젝트는 시리얼라이즈에 저장되지 않습니다. 이 지정자는 서브클래스에 상속됩니다.

DontAutoCollapseCategories=(Category, Category, ...)

부모 클래스에서 상속된 나열 카테고리에 대해 AutoCollapseCategories 지정자를 무효화시킵니다.

DontCollapseCategories

베이스 클래스에서 상속된 CollapseCatogories 지정자를 무효화시킵니다.

EditInlineNew

이 클래스의 오브젝트는 기존 애셋에서 참조되는 것과 반대로, 언리얼 에디터 프로퍼티 창에서 생성할 수 있음을 나타냅니다. 기본 작동방식은, 기존 오브젝트로의 레퍼런스만 프로퍼티 창을 통해 할당할 수 있습니다. 이 지정자는 모든 자식 클래스에 전파되며, 자식 클래스에서는 NotEditInlineNew 지정자로 덮어쓸 수 있습니다.

HideCategories=(Category1, Category2, ...)

이 클래스의 오브젝트에 대해 언리얼 에디터 프로퍼티 창에서 숨겨야 하는 카테고리를 하나 이상 나열합니다. 카테고리 없이 선언된 프로퍼티를 숨기려면, 변수를 선언한 것과 같은 클래스 이름을 사용하면 됩니다. 이 지정자는 자식 클래스에 전파됩니다.

HideDropdown

이 클래스가 언리얼 에디터 프로퍼티 창에 콤보 박스로 나타나지 않도록 합니다.

HideFunctions=(Category1, Category2, ...)

프로퍼티 뷰어에서 지정된 카테고리의 모든 함수를 숨깁니다.

HideFunctions=FunctionName

프로퍼티 뷰어에서 해당 이름의 함수를 숨깁니다.

Intrinsic

이 클래스는 C++ 에서 바로 전언하여 언리얼 헤더 툴 이 생성하는 상용구가 없음을 나타냅니다. 새 클래스에는 사용하지 마세요.

MinimalAPI

클래스의 형 정보만 다른 모슐이 사용할 수 있도록 노출시킵니다. 이 클래스는 형변환이 가능하지만, 그 함수는 (인라인 메서드를 제외하고) 호출할 수 없습니다. 다른 모듈에서 접근할 수 없는 함수 전부가 필요치 않은 클래스에 대해 모든 것을 익스포트하지 않아 컴파일 시간이 향상됩니다.

NoExport

이 클래스의 선언은 헤더 생성기의 자동 생성 C++ 헤더 파일에 포함시키지 말아야 함을 나타냅니다. C++ 클래스 선언은 별도의 헤더 파일에 수동 정의해야 합니다. 네이티브 클래스에만 유효합니다. 새 클래스에는 사용하지 마세요.

NonTransient

베이스 클래스에서 상속된 Transient 지정자를 무효화시킵니다.

NotBlueprintable

이 클래스는 블루프린트 생성을 위한 베이스 클래스로 사용할 수 없음을 나타냅니다. 기본값이며, 서브클래스에 상속됩니다.

NotPlaceable

베이스 클래스에서 상속된 Placeable 지정자를 무효화시킵니다. 이 클래스의 오브젝트는 에디터의 레벨, UI 씬, 블루프린트에 배치할 수 없음을 나타냅니다.

PerObjectConfig

이 클래스의 환경설정 정보는 오브젝트별로 저장되며, 각 오브젝트에는 .ini 파일에 섹션이 있고 그 이름은 오브젝트를 따서 [ObjectName ClassName] 포맷으로 합니다. 이 지정자는 자식 클래스에 전파됩니다.

Placeable

이 클래스는 에디터에서 생성할 수 있고 (클래스 유형에 따라) 레벨, UI 씬, 블루프린트에 배치할 수 있음을 나타냅니다. 이 옵션은 모든 자식 클래스에 전파되며, 자식 클래스에서는 NotPlaceable 지정자로 덮어쓸 수 있습니다.

ShowCategories=(Category1, Category2, ...)

나열된 카테고리에 대해서 (베이스 클래스에서 상속된) HideCategories 지정자를 무효화시킵니다.

ShowFunctions=(Category1, Category2, ...)

프로퍼티 뷰어에서 나열된 카테고리 내 모든 함수를 표시합니다.

ShowFunctions=FunctionName

프로퍼티 뷰어에서 나열된 함수를 표시합니다.

Transient

이 클래스에 속하는 오브젝트는 디스크에 저장되지 않습니다. 플레이어나 창처럼 속성상 지속적이지 않은 네이티브 클래스같은 것과 함께 쓸 때 좋습니다. 이 지정자는 자식 클래스에 전파되며, NonTransient 지정자로 덮어쓸 수 있습니다.

Within=OuterClassName

이 클래스의 오브젝트는 OuterClassName 오브젝트의 인스턴스 외부에 존재할 수 없습니다. 즉 이 클래스의 오브젝트를 생성하는 것은 OuterClassName 인스턴스를 Outer 오브젝트로 제공해야 한다는 뜻입니다.

메타데이터 지정자

메타데이터 지정자 사용법은 일반적인 클래스, 함수, 인터페이스 지정자와는 다릅니다.

클래스는 다음과 같은 메타태그 지정자를 사용할 수 있습니다:

클래스 메타 태그

효과

BlueprintSpawnableComponent

존재하면, 블루프린트가 컴포넌트 클래스를 스폰시킬 수 있습니다.

BlueprintThreadSafe

블루프린트 함수 라이브러리에서만 유효합니다. 이 지정자는 이 클래스의 함수를 애니메이션 블루프린트의 비게임 스레드에서 호출가능한 것으로 마킹합니다.

ChildCannotTick

액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스가 틱을 할 수 없으면, 이 액터 또는 컴포넌트를 기반 블루프린트 생성 클래스도, 심지어 bCanBlueprintsTickByDefault 가 true 라도 절대 틱이 되지 않습니다.

ChildCanTick

액터 및 컴포넌트 클래스에 사용됩니다. 네이티브 클래스가 틱을 할 수 없으면, 이 액터 또는 컴포넌트를 기반 블루프린트 생성 클래스는, bCanBlueprintsTickByDefault 가 false 라 할지라도 bCanEverTick 옵션을 덮어쓰도록 할 수 있습니다.

DeprecatedNode

비헤이비어 트리 노드에 대해, 클래스가 폐기되어 컴파일 시 경고가 표시됨을 나타냅니다.

DeprecationMessage="Message Text"

클래스가 폐기되면, 그것을 사용하는 블루프린트를 컴파일하려 할 때 표준 폐기 경고에 이 메시지가 추가됩니다.

DisplayName="Blueprint Node Name"

블루프린트의 이 노드 이름은 코드 생성 이름이 아닌 여기 제공된 값으로 대체됩니다.

DontUseGenericSpawnObject

블루프린트의 Generic Create Object 노드를 사용하여 클래스의 오브젝트를 스폰하지 않습니다. 이 지정자는 Actor 도 ActorComponent 도 아닌 BlueprintType 클래스에만 의미가 있습니다.

ExposedAsyncProxy

Async Task 노드에 이 클래스의 프록시 오브젝트를 노출시킵니다.

IgnoreCategoryKeywordsInSubclasses

클래스의 첫 서브클래스가 상속된 ShowCategoriesHideCategories 지정자 전부를 무시하도록 만듭니다.

IsBlueprintBase="true/false"

이 클래스가 블루프린트 생성을 위한 베이스 클래스로 적합한지( 또는 아닌지)를 나타냅니다. UCLASS 지정자, Blueprintable 또는 'NotBlueprintable` 과 비슷합니다.

KismetHideOverrides="Event1, Event2, .."

덮어쓰기를 허용하지 않을 블루프린트 이벤트 목록입니다.

ProhibitedInterfaces="Interface1, Interface2, .."

클래스와 호환되지 않는 인터페이스 목록입니다.

RestrictedToClasses="Class1, Class2, .."

블루프린트 함수 라이브러리 클래스에서 목록의 클래스 사용을 제한시킵니다.

ShortToolTip="Short tooltip"

부모 클래스 선택기 대화창처럼 전체 툴팁 표시가 버거운 상황에서 사용할 짧은 툴팁입니다.

ShowWorldContextPin

이 클래스 소유 그래프에 배치된 블루프린트 노드는 월드 컨텍스트 핀을 반드시 표시해야 합니다. 이 클래스 오브젝트를 월드 컨텍스트로 사용할 수 없어서, 보통 숨겨진 경우에도 마찬가지입니다.

UsesHierarchy

클래스가 계층형 데이터를 사용함을 나타냅니다. 디테일 패널의 계층형 편집 기능 인스턴싱에 사용합니다.

ToolTip="Hand-written tooltip"

코드 코멘트에서 자동 생성되는 툴팁을 덮어씁니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼