반응형
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
언리얼 엔진에서 UFUNCTION 은 어떻게 사용할 수 있는지 물어봤습니다.
질문 >
언리얼 엔진에서 UFUNCTION 은 어떻게 사용하나요?
답변 >
UFUNCTION은 언리얼 엔진의 C++ 코드에서 함수에 특정 속성(메타데이터)을 부여하기 위해 사용되는 매크로입니다. 이를 통해 함수가 블루프린트, 네트워크 복제, 이벤트 시스템과 같은 언리얼 엔진의 핵심 기능들과 상호작용할 수 있습니다.
UFUNCTION의 기본 구조:
UFUNCTION([Specifier])
반환형 함수명(매개변수);
주요 Specifier(지정자)와 사용 예시:
- BlueprintCallable:
- 이 지정자는 해당 함수를 블루프린트에서 호출할 수 있게 만듭니다. 블루프린트 스크립팅에서 C++ 함수를 호출하여 게임 로직을 확장할 수 있습니다.
UFUNCTION(BlueprintCallable, Category = "Player") void Jump();
- BlueprintImplementableEvent:
- 이 지정자는 C++ 함수의 기본적인 구현을 생략하고, 블루프린트에서 함수의 동작을 구현할 수 있게 합니다. 즉, C++에서 함수를 정의하지만, 구체적인 구현은 블루프린트에서 할 수 있습니다.
UFUNCTION(BlueprintImplementableEvent) void OnPlayerDeath();
- BlueprintNativeEvent:
- 이 지정자는 C++에서 기본 구현을 제공하면서, 필요에 따라 블루프린트에서 해당 함수를 재정의할 수 있도록 합니다.
UFUNCTION(BlueprintNativeEvent) void TakeDamage(int32 DamageAmount); virtual void TakeDamage_Implementation(int32 DamageAmount);
- NetMulticast:
- 네트워크 복제와 관련된 지정자로, 서버에서 호출되면 모든 클라이언트로 해당 함수가 복제됩니다. 멀티플레이어 게임에서 서버가 특정 동작을 클라이언트에게 동기화할 때 사용됩니다.
UFUNCTION(NetMulticast, Reliable) void MulticastPlaySound();
- Server / Client:
- 서버나 클라이언트에서만 실행되는 함수를 정의할 때 사용합니다. 서버에서 실행할 함수는 Server, 클라이언트에서 실행할 함수는 Client 지정자를 사용합니다.
UFUNCTION(Server, Reliable, WithValidation) void ServerFireWeapon(); UFUNCTION(Client, Reliable) void ClientShowHitMarker();
- Exec:
- 이 지정자는 콘솔 명령어로 호출할 수 있는 함수를 정의할 때 사용됩니다. 예를 들어, 게임 내에서 개발자가 콘솔에 명령어를 입력하면 이 함수가 실행됩니다.
UFUNCTION(Exec) void ToggleDebugMode();
UFUNCTION의 주요 기능:
- 블루프린트 통합: UFUNCTION을 사용하면 C++ 함수를 블루프린트에서 사용할 수 있어, 게임 로직을 더욱 유연하게 확장할 수 있습니다.
- 네트워크 복제: Net 관련 지정자를 사용하여 멀티플레이어 환경에서 서버와 클라이언트 간의 함수 동기화를 쉽게 관리할 수 있습니다.
- 이벤트 시스템: 이벤트 기반 함수를 통해 특정 상황에 맞춰 동작을 정의하고, 이를 블루프린트나 C++에서 유연하게 구현할 수 있습니다(Puget Systems)(Unreal Engine).
UFUNCTION은 언리얼 엔진의 다양한 시스템과 통합되어 C++ 코드의 기능을 확장하고, 블루프린트나 네트워크 시스템과의 상호작용을 쉽게 할 수 있도록 도와줍니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
🎬 유튜브 채널 🎬
🎬 치지직 채널 🎬
반응형
'프로그래밍' 카테고리의 다른 글
👨💻 [Unreal] 언리얼 엔진 5.4 에서 비주얼 스크립팅은 무엇인가요? (0) | 2024.10.09 |
---|---|
👨💻 [MFC] invalid PKCS #7 block padding found 오류가 발생하는 이유는 무엇인가요? (0) | 2024.10.04 |
👨💻 [Unreal] 언리얼 엔진에서 UPROPERTY 는 어떻게 사용하나요? (0) | 2024.09.30 |
👨💻 [MFC] MFC 에서 std::map 의 Key 목록을 얻으려면 어떻게 하나요? (1) | 2024.09.20 |
👨💻 [MFC] MFC 에서 Map 에 Key 값이 존재하는지 확인하는 방법은 어떻게 되나요? (0) | 2024.09.20 |