소셜 허브
개요
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
ConnectionManager
가 Monobehaviour
이기 때문에 수행할 수 없는 네트워크 작업을 수행하는 것이 이 수업의 주된 목적입니다. 이 샘플에서는 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 소셜 허브 샘플에는 해당 제작자가 제공하는 여러 에셋이 포함되어 있습니다. 전체 패키지는 해당 사이트에서 개별적으로 프로젝트를 위해 구입할 수 있습니다:
- Kay Lousberg의 KayKit Dungeon
중요: 상업 프로젝트에 사용하려면 해당 제작자로부터 라이선스를 구입해야 합니다.
Back to top