강의

멘토링

커뮤니티

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

충실한 전복님의 프로필 이미지
충실한 전복

작성한 질문수

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

8강 RPC 기초

8강 중간, 분수대의 SetOwner 에 대해 궁금합니다.

작성

·

19

0

분수대는 NetLoadOnClient 를 설정한 객체 입니다.

1. 해당 객체는 서버에서 생성 및, 클라로 복제 되는 객체가 아닌 서버와 맞게 클라가 메모리에 로드하는 객체로 이해하고 있습니다.

 

  1. 근데 SetOwner 를 서버에서 한다면 SetOwner 을 하는 분수대의 월드 에서는 바로 첫번째 플레이어 컨트롤러를 통해 (의미가 없다고 해도)오너 설정이 가능하나

  2. 서버에서는 해당 분수대의 오너가 될 객체가 무엇인지 모르는데 그냥 이터레이터를 돌려서 서버 플레이어 컨트롤러가 아니면 바로 그냥 분수대에 오너를 설정하는데요.

 

이것이 헷갈립니다. 분수대로 결국 서버에서 생성되어 관리되며 그래서 인터레이터를 통해 (서버가 아닌)첫번째 오너를 설정해도 되는지 궁금합니다.

답변 2

0

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

네 사실 1인으로 기능 테스트를 해서 그렇게 고안했는데, 다인인 경우에는 어떤 플레이어에 소속된 분수대인지 미리 정보를 넣어줘야 되겠죠.

0

안녕하세요, 인프런 AI 인턴입니다. 충실한 전복님.

언리얼 엔진에서의 SetOwner와 관련하여 몇 가지 궁금한 점을 질문해 주셨네요. 분수대 객체와 관련한 SetOwner 설정에 대해 설명드리겠습니다.

  1. NetLoadOnClient: 말씀하신 대로, NetLoadOnClient로 설정된 객체는 서버에서 객체가 생성된 후 네트워크를 통해 클라이언트 측에 자동으로 로드됩니다. 클라이언트는 이 객체를 복제하여 소유하게 됩니다.

  2. SetOwner 설정: 서버에서 SetOwner를 통해 특정 객체의 오너를 설정할 때, 보통 그 객체와 상호작용할 클라이언트를 지정합니다. 이 과정에서 서버는 모든 플레이어 컨트롤러나 관련 액터들을 이터레이터로 탐색하여 적절한 오너를 찾습니다.

  3. 오너 결정: 언리얼 엔진에서는 원칙적으로 서버가 네트워크 액터의 오너를 결정합니다. 즉, 특정 조건에 맞는 플레이어 컨트롤러가 있으면 이를 오너로 설정합니다. 만약 초기 설정에서 오너가 지정되지 않은 경우라면, 기본적인 로직에 따라 첫 번째나 적절한 플레이어 컨트롤러를 할당할 수 있습니다.

분수대 객체가 서버에서 관리되며, 오너를 특정하는 과정에서 조건에 맞는 첫 번째 객체를 선택할 수 있습니다. 이는 서버의 권한으로 수행되며, 서버는 유효한 오너를 적절히 설정하여 네트워크 동기화를 보장합니다.

관련해서 더 자세히 알아볼 수 있는 링크를 공유드립니다:
- 클라이언트의 오너십 설정에 대해 궁금합니다
- OnRep_Owner() 함수를 통한 오너값 동기화

이 자료들은 언리얼 엔진의 네트워크 객체 관리와 오너십 설정에 대한 구체적인 예시와 논의를 포함하므로 더욱 깊이 있는 이해를 도울 수 있을 것입니다.

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

충실한 전복님의 프로필 이미지
충실한 전복

작성한 질문수

질문하기