inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Rookiss University] UE5 Lyra 클론 코딩 (Haker)

GamePlayCueManager #2

UDefaultGameFeaturesProjectPolicies 사용 하는 이유

140

강건희

작성한 질문수 22

0

8분 20초 부터 GameFeatureSubsystem를 상속받아 사용하지 말고 UDefaultGameFeaturesProjectPolicies 이 클래스를 상속받아 사용하라는 얘기를 하시는데 게임의 규칙들을 GameFeatureSubsystem을 상속 받아 사용하는 방식이랑 어떤 차이가 있는 건가요? Observer패턴을 쓰는 걸 보면 게임의 규칙들을 컴포넌트처럼 만들어서 사용하는 것 같긴 한데 어떤 구조로 돌아가는지 정확히 이해를 못하겠어요.

c++ unreal-engine

답변 2

1

Liu

GameFeatureSubsystem과 UDefaultGameFeaturesProjectPolicies는 각기 다른 목적과 역할을 가지고 있습니다!

GameFeatureSubsystem은 GameFeature 시스템의 중앙 관리자 역할을 수행하며, GameFeature와 관련된 작업을 관리하는 데 사용됩니다. 예를 들어, AddComponentSendMessage와 같은 Action을 처리하고, 시스템 내에서 필요한 로직을 중앙에서 제어하는 역할을 합니다. 반면, UDefaultGameFeaturesProjectPolicies는 프로젝트 수준에서 GameFeature와 관련된 규칙과 정책을 정의하는 데 초점이 맞춰져 있습니다. 이름에서 알 수 있듯이 GameFeature가 로딩되었을 때 어떤 작업을 수행해야 하는지를 규정하는데, 라이라 게임의 사례를 보면 GameFeature 로딩 시 필요한 GameplayCue를 로드하도록 규칙을 설정하는 데 사용되고 있습니다.

다시 한번 정리해보면 이 두 클래스는 구조적으로도 차이가 있습니다. GameFeatureSubsystem은 시스템 전반의 관리를 담당하는 중앙 집행 기관과 같은 역할을 하며, 여러 Action을 처리하는 데 중점을 둡니다. 반면, UDefaultGameFeaturesProjectPolicies는 특정 기능의 실행보다는 게임 전반의 규칙을 정하고 관리하는 데 더 큰 역할을 합니다. 이러한 설계를 통해 두 시스템이 각각의 목적을 충족하면서도 유기적으로 작동할 수 있도록 설계되었습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

강건희님, 질문해주신 내용에 대해 설명드리겠습니다.

UDefaultGameFeaturesProjectPolicies는 게임의 기능과 관련된 정책을 정의하는 데 사용되는 클래스입니다. 이 클래스를 상속받아 사용함으로써, 게임의 기능을 추가하고 관리하는 데 있어 다양한 정책을 커스터마이즈할 수 있습니다. 게임 세계에서 규칙을 구현할 때 이 클래스는 유연하고 확장 가능한 구조를 제공하는 데 중점을 둡니다.

한편, GameFeatureSubsystem은 게임 기능을 로드하고 관리하는 하위 시스템으로, 특정 기능을 활성화하거나 비활성화하는 데 많이 사용됩니다. 이 클래스를 직접 상속받아 사용하는 것은 주로 기본적인 기능 관리를 목적으로 하며, 정책을 정교하게 다루기보다는 기능 중심의 접근입니다.

Observer 패턴을 사용하는 것은 상태 변화에 따라 시스템이 반응하도록 게임의 다양한 컴포넌트가 서로 정보를 주고받는 구조를 구현하기 위함입니다. 이를 통해 게임의 서브 시스템이 독립적으로 기능하지만, 필요할 때는 서로 통신할 수 있는 구조를 제공합니다.

쉽게 말해, UDefaultGameFeaturesProjectPolicies를 사용하면 게임 규칙을 중앙 집중적으로 관리하고 정교하게 제어할 수 있으며, Observer 패턴을 통해 컴포넌트 간의 상호작용을 유연하게 다루는 것이 가능합니다. 이는 모듈화된 관리와 기능 확장을 가능하게 하고, 복잡한 게임 환경에서도 유지 보수가 용이한 구조를 제공하는데 목적이 있습니다.

더 자세한 정보는 아래 링크를 참고하세요:
Spring Boot Core Features

도움이 되었길 바랍니다! 더 궁금한 점이 있다면 언제든지 질문해 주세요.

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

22

0

B_TeleportToUserFacingExperience가 추가로 생성되지 않습니다.

0

57

2

.

0

59

1

SpawnDefaultPawnAtTransform_Implementation이 호출되지 않습니다.

0

58

2

Input Subsystem 에서 오류가 발생합니다

0

65

1

7강 GameMode와 Modules관련 질문드립니다.

0

55

1

LyraFrontEnd 에서 로딩화면에서 넘어가지 않는 원인이 뭔지 질문드립니다.

0

82

2

리소스 이주했는데 안보이는데 어떻게 해야하나요?

0

86

3

TakeFromAbilitySystem 함수에서 Array 에 대한 remove 는 수행하지 않나요?

0

57

1

CircumferenceMarkerWidget의 bReticleCornerOutsideSpreadRadius 초기화 관련

0

61

1

Pawn 교체, Possess 후 위젯이 이전 값(상태)을 잘못 보여줄 때 처리법이 궁금합니다.

0

74

2

Pawnextension#3 9:19 질문이 있습니다.

0

61

2

Experience 재시작

0

79

2

Log 파트에서 Subtitution Macro Call 를 사용하는 방법이 무엇인가요?

0

81

2

설치후 빌드하는데 에러가 발생하고 인텔리센스도 잘 활성화되지 않습니다.

0

204

1

FPerContextData에 대해 질문이 있어요

0

49

2

OnGameFeatureActivating와 WorldContext관해 질문 있습니다.

0

68

1

GameFeature Action 및 Common UI Widget 생성 관련 질문

0

80

1

가비지컬렉션 관련 질문있습니다.

0

94

3

Travel관련해서 질문 있습니다.

0

60

1

IMC가 먹통이에요

0

86

2

PawnExtension #3 에서 말한 라이라 공식문서가 뭔가요?

0

65

1

PawnExtensionComponent::SetPawnData에서의 CheckDefaultInitialization

0

58

1

미니맵 제작

0

89

2