함수 선언시, Function Specifier (함수 지정자)를 선언에 붙여 함수가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 제어할 수 있습니다.
| 함수 지정자 | 효과 |
|---|---|
BlueprintAuthorityOnly |
네트워크 전권이 있는 머신(서버, 데디케이티드 서버, 싱글플레이어 게임)에서 이 함수를 실행하는 경우, 블루프린트 코드에서만 실행됩니다. |
BlueprintCallable |
이 함수는 블루프린트 또는 레벨 블루프린트 그래프에서 실행할 수 있습니다. |
BlueprintCosmetic |
이 함수는 장식성이라 데디케이티드 서버에서는 실행되지 않습니다. |
BlueprintGetter |
이 함수는 블루프린트 노출 프로퍼티에 대한 접근자로 사용됩니다. 이 지정자는 BlueprintPure 와 BlueprintCallable 을 내포합니다. |
BlueprintImplementableEvent |
이 함수는 블루프린트 또는 레벨 블루프린트 그래프에서 구현할 수 있습니다. |
BlueprintInternalUseOnly |
이 함수는 최종 사용자에게 노출시키지 말아야 함을 나타냅니다. |
BlueprintNativeEvent |
이 함수는 블루프린트 로 덮어쓰도록 디자인되었지만, 기본 내장 구현이 있기도 합니다. 메인 함수 이름 끝에 _Implementation 를 붙인 함수를 추가로 선언한 뒤 코드를 작성하면 됩니다. 자동생성 코드는 블루프린트 오버라이드를 찾지 못하면 "_Implementation" 메서드를 호출합니다. |
BlueprintPure |
이 함수는 어떤 식으로든 소유 오브젝트에 영향을 주지 않으며, 블루프린트 또는 레벨 블루프린트 그래프에서 실행할 수 있습니다. |
BlueprintSetter |
이 함수는 블루프린트 노출 프로퍼티의 뮤테이터로 사용됩니다. 이 지정자는 BlueprintCallable 을 내포합니다. |
CallInEditor |
이 함수는 디테일 패널의 버튼을 통해 선택된 인스턴스 상의 에디터에서 호출할 수 있습니다. |
Category = "TopCategory\|SubCategory\|Etc" |
이 함수를 블루프린트 편집 툴에 표시할 때의 카테고리를 지정합니다. 중첩 카테고리는 | 연산자로 표시합니다. |
Client |
이 함수는 호출되는 오브젝트를 소유한 클라이언트에서만 실행됩니다. 메인 함수 이름 뒤에 _Implementation 를 붙인 함수를 추가로 선언합니다. 자동 생성 코드는 필요할 때 "_Implementation" 머소드를 호출합니다. |
CustomThunk |
UnrealHeaderTool 코드 생성기는 이 함수에 대해 썽크를 생산하지 않으며, 사용자가 제공해 줘야 합니다. |
Exec |
이 함수는 게임 내 콘솔에서 실행할 수 있습니다. 실행 명령은 특정 클래스 안에서 선언했을 때만 작동합니다. |
NetMulticast |
이 함수는 서버 로컬 및 모든 클라이언트에 리플리케이트되는 상황 양쪽에서, 액터의 NetOwner 와 상관 없이 실행됩니다. |
Reliable |
이 함수는 네트워크로 리플리케이트되며, 대역폭이나 네트워크 오류와 상관 없이 도착이 보장됩니다. Client 또는 Server 와 함께 사용했을 때만 유효합니다. |
SealedEvent |
이 함수는 서브클래스에서 덮어쓸 수 없습니다. SealedEvent 키워드는 이벤트에만 사용할 수 있습니다. 이벤트가 아닌 함수의 경우, static 또는 final 로 선언하면 봉인할 수 있습니다. |
ServiceRequest |
이 함수는 RPC (Remote Procedure Call) 서비스 요청입니다. |
ServiceResponse |
이 함수는 RPC 서비스 반응입니다. |
Server |
이 함수는 서버에서만 실행됩니다. 메인 함수 이름 뒤에 _Implementation 를 붙인 함수를 추가로 선언하고, 기거서 코드를 작성합니다. 자동생성 코드는 필요할 때 "_Implementation" 메서드를 호출합니다. |
Unreliable |
이 함수는 네트워크로 리플리케이트되지만 대역폭 제한이나 네트워크 오류로 인해 실패할 수 있습니다. Client 또는 Server 와 함께 사용했을 때만 유효합니다. |
WithValidation |
메인 함수 이름 뒤에 _Validation 를 붙인 함수를 추가로 선언합니다. 이 함수는 같은 파라미터를 받으며, 메인 함수 호출 진행 여부를 나타내는 bool 을 반환합니다. |
메타데이터 지정자
메타데이터 지정자 사용법은 일반적인 클래스, 함수, 인터페이스 지정자와는 다릅니다.
| 함수 메타 태그 | 효과 |
|---|---|
AdvancedDisplay="Parameter1, Parameter2, .." |
쉼표로 구분된 파라미터 목록이 (UI 확장이 필요한) 고급 핀으로 표시됩니다. |
AdvancedDisplay=N |
N 번째 이후 모든 파라미터는 (UI 확장이 필요한) 고급 핀으로 표시됩니다. 예로 'AdvancedDisplay=2' 는 첫째 둘째를 제외한 전부가 고급 파라미터가 됩니다. |
ArrayParm="Parameter1, Parameter2, .." |
BlueprintCallable 함수는 Call Array Function 노드를 사용하고, 나열된 파라미터는 와일드카드 배열 프로퍼티로 취급해야함을 나타냅니다. |
ArrayTypeDependentParams="Parameter" |
ArrayParm 사용 시, ArrayParm 목록 내 모든 파라미터 유형을 결정하는 파라미터를 지정합니다. |
AutoCreateRefTerm="Parameter1, Parameter2, .." |
나열된 파라미터는 참조 전달이라 할지라도, 핀을 연결하지 않고 놔둬도 자동 생성 기본값을 갖습니다. 블루프린트 편의 기능입니다. |
BlueprintAutocast |
블루프린트 함수 라이브러리의 스태틱 BlueprintPure 함수에서만 사용됩니다. 반환형과 함수 첫 파라미터 유형에 대한 형변환 노드가 자동 추가됩니다. |
BlueprintInternalUseOnly |
이 함수는 내부 구현 디테일로, 다른 함수 또는 노드 구현에 사용됩니다. 블루프린트 그래프에 바로 노출되지는 않습니다. |
BlueprintProtected |
이 함수는 블루프린트의 소유 오브젝트에서만 호출 가능합니다. 다른 인스턴스에서는 호출할 수 없습니다. |
CallableWithoutWorldContext |
WorldContext 핀이 있는 BlueprintCallable 함수에서, 클래스가 GetWorld 함수를 구현하지 않더라도 함수 호출이 가능함을 나타내는 데 사용됩니다. |
CommutativeAssociativeBinaryOperator |
BlueprintCallable 함수가 Commutative Associative Binary (이항 가환 결합) 노드를 사용해야 함을 나타냅니다. 이 노드는 핀 이름이 없지만, "Add Pin" (핀 추가) 버튼이 있어 입력 핀을 추가할 수 있습니다. |
CompactNodeTitle="Name" |
BlueprintCallable 함수가 간략 표시 모드로 표시해야 함을 나타내며, 그 모드에서 표시할 이름을 제공합니다. |
CustomStructureParam="Parameter1, Parameter2, .." |
나열된 파라미터는 모두 와일드카드로 취급됩니다. 이 지정자는 커스텀 |
DefaultToSelf |
BlueprintCallable 함수에 대해, 오브젝트 프로퍼티의 기본 값은 노드의 셀프 컨텍스트가 되어야 함을 나타냅니다. |
DeprecatedFunction |
이 함수를 참조하는 블루프린트는 컴파일 경고를 통해 사용자에게 함수가 폐기되었음을 알립니다. DeprecationMessage 메타데이터 지정자를 사용하면 (폐기된 함수 대체 안내문 제공과 같은) 폐기 경고 메시지를 추가할 수 있습니다. |
DeprecationMessage="Message Text" |
함수가 폐기되면, 그것을 사용하는 블루프린트를 컴파일하려 할 때 표준 폐기 경고에 이 메시지가 추가됩니다. |
DevelopmentOnly |
이 함수는 개발 모드에서만 실행됩니다. 출시 제품에 포함시키지 않을 것으로 기대되는 디버그 출력같은 기능에 좋습니다. |
DisplayName="Blueprint Node Name" |
블루프린트의 이 노드 이름은 코드 생성 이름이 아닌 여기 제공된 값으로 대체됩니다. |
ExpandEnumAsExecs="Parameter" |
BlueprintCallable 함수에 대해, 파라미터에 사용되는 enum 각 항목에 대해 하나의 입력 실행 핀을 생성해야 함을 나타냅니다. 네임드 파라미터는 반드시 엔진에서 UENUM 태그로 인식되는 열거형이어야 합니다. |
HidePin="Parameter" |
BlueprintCallable 함수에 대해, 파라미터 핀을 사용자 뷰에서 숨겨야 함을 나타냅니다. 참고로 함수 당 단 하나의 파라미터만 이런 식으로 숨길 수 있습니다. |
HideSelfPin |
함수 호출 대상 오브젝트를 나타내는 데 사용되는 "self"(셀프) 핀을 숨깁니다. 셀프 핀은 호출하는 블루프린트 클래스와 호환되는 BlueprintPure 함수에서는 자동으로 숨겨집니다. 보통 DefaultToSelf 지정자와 함께 사용합니다. |
InternalUseParam="Parameter" |
HidePin 과 비슷하게, 사용자 관점에서 해당 이름의 파라미터 핀을 숨깁니다. 함수 당 하나의 파라미터에만 사용할 수 있습니다. |
KeyWords="Set Of Keywords" |
블루프린트 그래프에서 함수 호출을 위한 노드를 배치할 때처럼, 이 함수 검색 시 사용할 수 있는 키워드 세트를 지정합니다. |
Latent |
잠복성 동작을 나타냅니다. 잠복성 동작은 FLatentActionInfo 유형 파라미터가 하나 있으며, 이 파라미터 이름은 LatentInfo 지정자로 지정합니다. |
LatentInfo="Parameter" |
잠복성 BlueprintCallable 함수에 대해 어느 파라미터가 LatentInfo 파라미터인지 나타냅니다. |
MaterialParameterCollectionFunction |
BlueprintCallable 함수에 대해, 머티리얼 오버라이드 노드를 사용해야 함을 나타냅니다. |
NativeBreakFunc |
BlueprintCallable 함수에 대해, 표준 Break Struct 노드와 같은 식으로 함수를 표시해야 함을 나타냅니다. |
NotBlueprintThreadSafe |
블루프린트 함수 라이브러리에서만 유효합니다. 이 함수는 소유 클래스의 일반 BlueprintThreadSafe 메타데이터에 예외로 취급됩니다. |
ShortToolTip="Short tooltip" |
부모 클래스 선택기 대화창처럼 전체 툴팁 표시가 버거운 상황에서 사용할 짧은 툴팁입니다. |
ToolTip="Hand-written tooltip |
코드 코멘트에서 자동 생성되는 툴팁을 덮어씁니다. |
UnsafeDuringActorConstruction |
이 함수는 액터 생성 도중 호출하는 것이 안전하지 않습니다. |
WorldContext="Parameter" |
BlueprintCallable 함수에서 어느 파라미터가 연산이 일어나는 월드를 정하는지 나타냅니다. |