Inflearn brand logo image

인프런 커뮤니티 질문&답변

두루미의왕님의 프로필 이미지
두루미의왕

작성한 질문수

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

GameFeatureAction_AddInput #2

FPerContextData에 대해 질문이 있어요

해결된 질문

작성

·

13

0

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

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

 

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

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

 

그럼 왜 FPerContextData가 멤버들을

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

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

답변 2

0

Liu님의 프로필 이미지
Liu
지식공유자

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

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

불가능하겠죠.

0

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

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

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

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

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

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

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

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

두루미의왕님의 프로필 이미지
두루미의왕

작성한 질문수

질문하기