This document is about: FUSION 2
SWITCH TO

소셜 허브

개요

Fusion 소셜 허브는 하나의 프로젝트에서 여러 토폴로지를 활용하는 방법과 각 토폴로지마다 고유한 차이를 고려하면서 서로 다르게 실행되도록 로직을 구현하는 방법을 보여주는 기술 샘플입니다. 이 샘플에서는 여러 NetworkRunner를 세션 간 전환으로 관리하는 방법도 보여줍니다.

이 샘플은 다음과 같이 구성되어 있습니다:

  • 많은 플레이어들이 초기에 NPC들을 모으고 상호작용할 수 있는 소셜 허브를 위한 공유 모드 그리고,
  • 더 적은 수의 플레이어가 소셜 허브에서 입장(즉, 생성 및 시작) 할 수 있는 던전의 호스트 모드 세션. 던전에서 플레이어는 상자를 파괴할 수 있습니다.

컨트롤

  • 호스트: 공격 LMB.
  • 두 토폴로지: 상호작용 E.

시작하기 전에

샘플을 실행하려면 먼저 PhotonEngine 관리 화면에서 Fusion AppId를 생성한 후 Real Time 설정(Fusion 메뉴에서 이동 가능)의 App Id Fusion 필드에 붙여 넣습니다.

다운로드

버전 릴리즈 일자 다운로드
2.0.1 2024년 1월 19일 Fusion 소셜 허브 2.0.1 빌드 577

연결 관리 시스템

연결 관리자는 연결 요청을 처리할 책임이 있습니다. 두 토폴로지를 모두 처리하는 NetworkRunner가 둘 이상이므로 올바른 러너를 참조하고 다른 러너와 충돌하지 않도록 필요한 모든 예방 조치를 취합니다.

App

ConnectionManagerMonobehaviour이기 때문에 수행할 수 없는 네트워크 작업을 수행하는 것이 이 수업의 주된 목적입니다. 이 샘플에서는 RPC를 통과하는 데만 사용됩니다.

연결 컨테이너

NetworkRunner, 해당 Runner에서 현재 사용하고 있는 ConnectionData, App, 러너의 콜백 클래스 및 일부 헬퍼 체크를 참조하는 간단한 c# 클래스입니다.

연결 데이터

ConnectionManager에 연결 요청을 하는 데 필요한 모든 데이터를 저장하는 데 사용되는 스크립트 가능한 객체입니다. 주요 속성은 다음과 같습니다:

  • ConnectionID: 연결을 나타내는 ID는 고유한 세션마다 다른 ID를 가져야 하며, 참여할 수 있는 세션이 없으면 세션 속성으로 사용하여 참여하거나 새 세션을 만듭니다.

  • ConnectionTarget: 연결 관리자는 원하는 연결이 공유 세션인지 호스트 세션인지 확인하는 데 사용합니다.

연결 게이트

ConnectionData에 대한 참조가 포함되어 있으며, ConnectionData에 정의된 세션에 연결하기 위해 인터페이스를 전환하는 영역 트리거로 사용됩니다.

연결 관리자

ConnectionManager.cs는 다른 유틸리티 로직 외에도 수신한 연결 대상에 따라 올바른 ConnectionContainer에 대한 참조를 저장하여 원하는 세션에 대한 연결을 주로 수행합니다.

두 토폴로지에 대한 코딩

일부 로직은 서로 다른 토폴로지에서 서로 다르게 작동하기 때문에 이 두 가지를 모두 지원하는 가장 좋은 방법은 Runner.IsServer가 아닌 Object.HasStateAuthority를 항상 확인하는 것입니다. 이는 공유 모드에서는 상태 권한을 포함하고 호스트 또는 서버 모드에서는 호스트 또는 서버를 포함하기 때문입니다.

또한 Fusion 입력을 사용하면 공유 모드에서 실제로 유용하지 않더라도 PlayerMovement 클래스처럼 호스트/서버에서 작동할 수 있습니다.

특정 토폴로지에서만 실행되도록 설정된 로직의 경우 NetworkObject와 관련된 NetworkRunner가 사용하고 있는 토폴로지를 Runner.Topology에서 반환합니다.

타사 에셋

Fusion 소셜 허브 샘플에는 해당 제작자가 제공하는 여러 에셋이 포함되어 있습니다. 전체 패키지는 해당 사이트에서 개별적으로 프로젝트를 위해 구입할 수 있습니다:

중요: 상업 프로젝트에 사용하려면 해당 제작자로부터 라이선스를 구입해야 합니다.

Back to top