MR Multiplayer Template 무작정 따라하기 (4) - Game Mode Manager 오브젝트 설정 - END


Tabletop Games

Reset Area Setup: 게임 영역 초기화를 위한 구성 요소.

  • GameModeManager: 현재 미니 게임의 모드 상태를 관리하는 매니저.
  • 다양한 게임 모드(예: Slingshot, Chess)가 포함된 설정.

 

 

  • 네트워크 오브젝트로 작동하며, 같은 계층 구조에 있는 모든 GameMode 인터페이스를 확인합니다.
  • 모든 GameMode 시스템에 필수적인 프리팹(또는 변형)이 씬에 있어야 합니다.

 

Network Object

  • 네트워크에서 Game Mode Manager를 동기화하기 위한 설정.
  • Scene Migration Synchronization:
    • 씬 간 이동 시 오브젝트 상태를 유지하고 동기화합니다(활성화됨).
  • Spawn With Observers:
    • 관찰자와 함께 생성됩니다(활성화됨).

Game Mode Manager (Script)

  • 이 스크립트는 현재 씬에서 활성화된 Game Mode 인터페이스를 관리합니다.
  • GameMode 인터페이스는 게임 모드별로 커스터마이징 가능한 동작을 정의합니다.

Game Mode Empty (Prefab):

기본 게임 모드를 정의하는 프리팹입니다. 별도의 기능이 없는 기본 상태의 게임 모드로 활용됩니다.

Game Mode Empty (Script):

각 게임 모드에 고유 ID를 부여하여 특정 모드를 식별하거나 전환할 때 사용

  • GameModeEmpty:
    • 게임 모드의 스크립트입니다.
  • Game Mode ID:
    • 게임 모드를 식별하기 위한 고유 ID. 현재는 0으로 설정되어 있습니다.

.

Game Modes Types

Scene Based Game Modes:

지속적인 데이터가 필요한 경우(예: 진행 상태 저장).

  • 메인 네트워크 씬 내에 존재하는 게임 모드.
  • 게임 모드 간 데이터를 지속적으로 유지해야 할 때 적합합니다(예: 하나의 게임 모드에서 다른 모드로 데이터 이동).

Game Mode Sandbox

 

Sandbox Game Mode는 네트워크 환경에서 객체를 생성, 상호작용, 제거할 수 있는 개방형 게임 모드입니다.

이 모드는 Network Object Dispenser 프리팹을 활용하여 플레이어가 물리적으로 상호작용 가능한 객체를 생성하고 조작할 수 있도록 지원합니다.

Network Object Dispenser:

  • 플레이어가 네트워크 환경에서 객체를 생성할 수 있는 시스템입니다.
  • 생성된 객체는 다른 플레이어와 공유되고, 물리적 상호작용이 가능합니다.

Networked Physics Interactables:

  • 물리적 상호작용이 가능한 네트워크 오브젝트입니다.
  • 몇 가지 특별한 속성을 가진 오브젝트가 포함됩니다:
    • Tube that applies force:
      • 물체에 힘을 가하는 튜브.
    • Torus that destroys objects:
      • 오브젝트를 파괴하는 토러스.

네트워크 상호작용

  • 생성된 오브젝트를 네트워크를 통해 동기화하여 다른 플레이어가 동일한 상태를 경험할 수 있습니다.

Game Mode Slingshot

 

Slingshot Game Mode는 실시간 협동 및 경쟁이 결합된 게임 모드로, 플레이어가 풍선을 맞추는 것을 목표로 합니다.

이 모드는 네트워크 기반의 세션 게임 모드로서, 명확한 시작과 끝이 있는 구조를 제공합니다.

주요 특징:

  1. 게임 목표:
    • 플레이어는 가능한 한 많은 풍선을 맞춰 점수를 획득해야 합니다.
    • 3개의 풍선이 천장에 도달하면 게임이 종료됩니다.
  2. 게임 방식:
    • 협동 모드: 플레이어가 함께 풍선을 맞춰 점수를 쌓습니다.
    • 경쟁 모드: 각 플레이어가 개별 점수를 얻기 위해 경쟁합니다.
  3. 세션 기반 게임:
    • 명확한 시작과 끝이 있는 게임 구조를 가집니다.
    • 세션이 종료되면 다시 플레이할 수 있도록 재시작이 가능합니다.

Network Object

네트워크 오브젝트 설정

Scene Migration Synchronization:

씬 간 이동 시 오브젝트 상태를 유지하고 동기화합니다 (활성화).

Spawn With Observers:

오브젝트 생성 시 관찰자가 자동으로 연결됩니다 (활성화).

GlobalObjectIdHash:

네트워크 오브젝트의 고유 ID: 3648702335.

NetworkManager:

현재 연결되지 않은 상태 (null).

Target Spawner Script

풍선 스폰 설정:

Target Audio:

오디오 소스 설정: 풍선과 상호작용 시 사운드 재생.

Target Hit Sounds, Bad Destroy Sounds, Spawn Sounds:

다양한 사운드 파일의 수량(3, 1, 4, 5) 지정.

Destroy Colors:

풍선이 파괴될 때의 색상 (아마도 풍선의 상태 시각화와 연관).

Target Prefab:

풍선 프리팹: BalloonTarget 사용.

Spawn Points:

풍선이 스폰될 수 있는 최대 위치 수: 25.

Spawn Interval Min Max:

풍선 스폰 간격: 최소 5, 최대 6.5초.


Game Mode Slingshot Script: 게임 모드와 관련된 주요 설정

Game Mode ID: Slingshot 모드의 고유 ID: 2.

Text Components:

  • Time Text: 남은 시간 표시.
  • Score Text: 현재 점수 표시.
  • Max Time Text: 게임의 최대 시간 표시.
  • Max Score Text: 최고 점수 표시.

Text Mesh Pro를 사용하여 텍스트 렌더링.

Difficulty & Multipliers:

Difficulty Spawn Multiplier:

스폰 난이도를 조정하는 곱셈 계수.

Player Count Difficulty Multiplier:

플레이어 수에 따른 난이도 증가 계수: 0.1.

Time Increment:

시간 증가 설정: 15초마다 증가.

Current Life Image:

현재 플레이어 생명을 나타내는 아이콘: Icon-Hearts.

Objects to Toggle:

게임 모드 실행 중 활성화/비활성화되는 오브젝트들(6개 지정).

Slingshot Areas:

게임에서 활성화되는 영역:

  • Target Spawner: 타겟(풍선)을 생성.
  • Pre Game UI Object: 게임 시작 전 UI.
  • In Game UI Object: 게임 중 UI.
  • New Score Record Game Object: 새로운 최고 점수 UI.

Additively Loaded Game Modes:

독립적인 데이터 및 메모리 관리가 필요한 경우(예: 임시 게임 환경)

  • 개별 씬으로 로드 및 언로드되는 게임 모드.
  • 메모리 관리에 유리하며, 공유된 씬 내에서 지속 데이터를 유지하지 않습니다.
  • 기존 테이블톱 게임을 이 템플릿에 포팅할 때 용이합니다.

Game Mode Chess

설정 및 기능 분석

  1. 네트워크 동기화:
    • Scene Migration Synchronization  Spawn With Observers가 활성화되어 있어, 네트워크 환경에서 체스 게임 오브젝트 상태가 안정적으로 유지됩니다.
    • Transform 동기화는 비활성화되어 있으므로, 체스 보드나 말의 위치는 네트워크와 독립적으로 관리될 가능성이 있습니다.
  2. 독립적인 씬 관리:
    • 체스 게임은 독립적인 씬(SlicesChess)으로 로드되며, Additively Loaded Game Mode 방식을 사용합니다.
    • 다른 모드와 분리된 독립 실행형 게임으로 설계되어 있습니다.
  3. 게임 데이터 초기화:
    • 새로운 씬을 로드하면 이전 게임의 진행 상태가 초기화되며, 이는 체스 게임의 Additive 특성에 적합합니다.

  •  

Network Object

네트워크 동기화 및 오브젝트 설정

  • Always Replicate As Root: 비활성화: 오브젝트가 항상 루트로 동작하지 않음.
  • Synchronize Transform: 비활성화: Transform(위치, 회전, 크기)이 네트워크를 통해 자동으로 동기화되지 않음.
  • Active Scene Synchronization: 비활성화: 현재 씬의 활성 상태 동기화를 하지 않음.
  • Scene Migration Synchronization: 활성화: 씬 이동 시 네트워크 오브젝트 상태를 유지 및 동기화.
  • Spawn With Observers: 활성화: 관찰자가 자동으로 생성될 때 오브젝트와 함께 동기화.
  • Dont Destroy With Owner: 비활성화: 오너가 삭제되면 해당 오브젝트도 삭제됨.
  • Auto Object Parent Sync: 비활성화: 부모 오브젝트와의 동기화 비활성화.
  • Sync Owner Transform When Removed: 비활성화: 오너가 제거될 때 Transform 동기화하지 않음.
  • Allow Owner To Parent: 비활성화: 오너가 부모 역할을 허용하지 않음.
  • NetworkManager: null: 특정 네트워크 매니저가 연결되지 않은 상태.