클래스를 선언할 때, 선언부에 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) 노드를 사용하여 클래스의 오브젝트를 스폰하지 않습니다. 이 지정자는 액터도 액터 컴포넌트도 아닌 블루프린트 타입 클래스에만 적용됩니다. |
ExposedAsyncProxy |
비동기 태스크 노드에서 이 클래스의 프록시 오브젝트를 노출합니다. |
IgnoreCategoryKeywordsInSubclasses |
클래스의 첫 번째 서브클래스가 상속된 모든 ShowCategories 및 HideCategories 지정자를 무시하도록 하는 데 사용됩니다. |
IsBlueprintBase="true/false" |
이 클래스가 Blueprintable 또는 NotBlueprintable 지정자와 유사한 블루프린트 생성에 허용되는 베이스 클래스인지 여부를 나타냅니다. |
KismetHideOverrides="Event1, Event2, .." |
오버라이드가 허용되지 않는 블루프린트 이벤트의 목록입니다. |
ProhibitedInterfaces="Interface1, Interface2, .." |
클래스와 호환되지 않는 인터페이스를 나열합니다. |
RestrictedToClasses="Class1, Class2, .." |
블루프린트 함수 라이브러리 클래스가 이 태그를 사용하여 목록에 이름이 지정된 클래스로 사용을 제한할 수 있습니다. |
ShortToolTip="Short tooltip" |
부모 클래스 선택 툴 대화 상자와 같이 전체 툴팁이 지나칠 수 있는 일부 상황에서 사용되는 짧은 툴팁입니다. |
ShowWorldContextPin |
이 클래스의 오브젝트는 월드 컨텍스트로 사용할 수 없기 때문에 이 클래스가 소유한 그래프에 배치된 블루프린트 노드는 일반적으로 숨겨져 있더라도 월드 컨텍스트 핀을 표시해야 함을 나타냅니다. |
UsesHierarchy |
클래스가 계층 데이터를 사용함을 나타냅니다. 디테일 패널에서 계층적 편집 기능을 인스턴스화하는 데 사용됩니다. |
ToolTip="Hand-written tooltip" |
코드 코멘트에서 자동으로 생성된 툴팁을 오버라이드합니다. |
ScriptName="DisplayName" |
이 클래스, 프로퍼티 또는 함수를 스크립팅 언어로 익스포트할 때 사용하는 이름입니다. 지원 중단된 이름을 세미콜론으로 구분된 추가 엔트리로 포함할 수 있습니다. |