함수 지정자

함수가 엔진과 에디터의 다양한 부분과 작동하는 방식을 지정하기 위해 UFunction 선언시 사용되는 키워드입니다.

Windows
MacOS
Linux

함수 선언시, Function Specifier (함수 지정자)를 선언에 붙여 함수가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 제어할 수 있습니다.

함수 지정자

효과

BlueprintAuthorityOnly

네트워크 전권이 있는 머신(서버, 데디케이티드 서버, 싱글플레이어 게임)에서 이 함수를 실행하는 경우, 블루프린트 코드에서만 실행됩니다.

BlueprintCallable

이 함수는 블루프린트 또는 레벨 블루프린트 그래프에서 실행할 수 있습니다.

BlueprintCosmetic

이 함수는 장식성이라 데디케이티드 서버에서는 실행되지 않습니다.

BlueprintGetter

이 함수는 블루프린트 노출 프로퍼티에 대한 접근자로 사용됩니다. 이 지정자는 BlueprintPureBlueprintCallable 을 내포합니다.

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, .."

나열된 파라미터는 모두 와일드카드로 취급됩니다. 이 지정자는 UFUNCTION 레벨 지정자 CustomThunk 가 필요한데, 이는 사용자가 커스텀 exec 함수를 제공해야 합니다. 이 함수에서, 파라미터 유형을 체크하여 그 파라미터 유형에 따라 적합한 함수 호출이 가능합니다. 베이스 UFUNCTION 은 절대 호출해서는 안되며, 호출한 경우 어서트 또는 오류가 발생합니다.

커스텀 exec 함수를 선언하는 문법은 DECLARE_FUNCTION(execMyFunctionName) 이며, MyFunctionName 는 원래 함수 이름입니다.

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 함수에서 어느 파라미터가 연산이 일어나는 월드를 정하는지 나타냅니다.

Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼