inflearn logo
강의

Course

Instructor

[Rookiss University] UE5 Lyra Clone Coding (Haker)

GameFeatureAction_AddInput #2

FPerContextData에 대해 질문이 있어요

Resolved

47

cww95121702

5 asked

0

struct FPerContextData
{
    TArray<TSharedPtr<FComponentRequestHandle>> ExtensionRequestHandles;
    TArray<TWeakObjectPtr<APawn>> PawnsAddedTo;
};

이렇게 멤버들을 배열로 들고있잖아용

 

그리고 GameFeatureAction_AddInputConfig에서 각 Client들의 Context는
TMap<FGameFeatureStateChangeContext, FPerContextData> ContextData;

이 친구가 들고있는걸로 보입니다.

 

그럼 왜 FPerContextData가 멤버들을

특히 Pawn을 배열로 관리할까 궁금합니다!

데디서버같은상황을 고려해서 그런건가요?

c++ unreal-engine

Answer 2

0

Liu

Action 자체로는 여러 데이터들을 추적할 수가 없어서 그렇습니다.

예를 들면 폰이 파괴되었다면 입력에 대한 것들도 같이 깔끔하게 제거 해야하는데 관련 정보가 없으면

불가능하겠죠.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 두루미의왕님.

질문하신 FPerContextData 구조체의 멤버들이 TArray로 정의된 이유와 특히 Pawn을 배열로 관리하는 이유에 대해 설명드리겠습니다.

FPerContextData는 여러 개의 각 클라이언트와 관련된 데이터를 관리하는 데 사용됩니다. 이를 TMap과 함께 사용하여 각 FGameFeatureStateChangeContext(클라이언트 Context)에 관련된 데이터를 효율적으로 정리할 수 있습니다.

  1. 배열로 관리하는 이유:

    • 멀티 플레이 환경에서는 여러 개의 Pawn이나 입력 설정 등이 동시에 관리되는 것이 일반적입니다. 따라서 이를 배열로 관리하는 것이 자연스럽습니다. 배열을 사용하면 여러 객체를 쉽게 추가, 제거, 검색할 수 있고, 동시에 같은 기능을 사용하거나 데이터를 공유하게 됩니다.
  2. 데디케이티드 서버 고려:

    • 멀티 플레이어 게임에서는 서버와 클라이언트 간의 상태 동기화가 필요하고, 서버는 여러 클라이언트의 상태를 추적해야 합니다. 특히 데디케이티드 서버 환경에서는 많은 플레이어의 상태를 관리해야 하기 때문에 이러한 구조가 유용합니다. 서버는 여러 Pawn 객체를 동시에 처리해야 할 경우가 많으므로 배열을 사용하여 Pawns을 관리하는 것이 효율적입니다.

관련된 추가 정보나 유사한 사례를 찾기 위해, 다른 질문에 대한 답변을 제공하겠습니다. 유사한 상황에서 어떻게 문제를 해결할 수 있는지 동료 수강생들의 질문과 답변을 통해 도움을 받을 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

5

0

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

0

51

2

.

0

56

1

SpawnDefaultPawnAtTransform_Implementation이 호출되지 않습니다.

0

56

2

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

0

62

1

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

0

52

1

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

0

81

2

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

0

84

3

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

0

55

1

CircumferenceMarkerWidget의 bReticleCornerOutsideSpreadRadius 초기화 관련

0

58

1

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

0

73

2

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

0

60

2

Experience 재시작

0

77

2

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

0

79

2

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

0

201

1

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

0

66

1

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

0

78

1

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

0

94

3

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

0

59

1

IMC가 먹통이에요

0

83

2

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

0

64

1

PawnExtensionComponent::SetPawnData에서의 CheckDefaultInitialization

0

54

1

미니맵 제작

0

84

2

UGameUIManagerSubsystem::ShouldCreateSubsystem 이상한 것 같은데요

0

74

2