Unity Cloud Services
이 이미지는 Unity의 Project Settings에서 Services General Settings 섹션에 해당합니다. 이 화면은 Unity Cloud Services를 설정하고 프로젝트를 Unity Cloud와 연결하기 위한 정보를 제공합니다.
화면 구성 요소 설명
- Project Name:
- 프로젝트 이름을 표시합니다. 현재 프로젝트 이름은 MR Multiplayer Template Test로 설정되어 있습니다.
- Unity Organization:
- 프로젝트가 속한 Unity 조직(Organization) 이름을 나타냅니다. 현재 조직 이름은 j2su0218로 설정되어 있습니다.
- Unity Organization은 팀 협업이나 여러 프로젝트를 관리할 때 사용됩니다.
- Unity Project ID:
- Unity Cloud에서 프로젝트를 식별하는 고유한 ID입니다.
- 프로젝트를 Cloud와 연결 해제하려면 "Unlink project" 버튼을 사용할 수 있습니다.
- Members:
- 프로젝트 멤버를 관리하는 섹션입니다.
- "Dashboard" 링크를 통해 Unity 웹 대시보드에서 멤버를 추가하거나 삭제할 수 있습니다.
- COPPA Compliance:
- **"Will this app be targeted to children as defined by applicable laws?"**라는 질문은 앱이 COPPA(아동 온라인 개인정보 보호법) 준수를 요구하는지를 나타냅니다.
- 현재 설정은 "No"로 되어 있어, 이 앱은 어린이를 주 타겟으로 하지 않습니다.
- COPPA 규정에 대한 자세한 내용을 보려면 링크를 참고할 수 있습니다.
오른쪽 패널: Unity Cloud Setup 지침
Unity Cloud와 프로젝트를 연결하는 단계별 지침이 제공됩니다.
- Project Settings로 이동:
- "Edit > Project Settings"를 통해 설정 페이지로 이동합니다.
- Organization 선택:
- Unity Hub에 로그인한 상태에서 조직을 선택합니다.
- 조직 목록은 Unity 계정과 연결된 항목에서 선택 가능합니다.
- Unity Project ID 연결:
- 기존 Unity Project ID를 사용하여 프로젝트를 연결하거나 새로운 ID를 생성할 수 있습니다.
- Developer Dashboard를 통해 세부 정보를 확인하거나, 새 ID를 생성하여 프로젝트를 연결할 수 있습니다.
- 상태 확인:
- "Connect Project to Unity Cloud" 단계가 완료되었음을 녹색 체크 표시로 보여줍니다.
주요 기능:
- 이 설정 화면은 Unity Cloud Services(예: Analytics, Multiplay, Collaborate)를 사용하려는 경우 필수적인 설정입니다.
- 프로젝트 ID와 조직을 연결하여 Unity Cloud 서비스를 원활히 사용할 수 있도록 합니다.
- COPPA 준수 여부를 설정해 앱의 대상 사용자를 명확히 정의합니다.
이 이미지는 Unity의 Vivox 음성 및 텍스트 통신 서비스 설정 화면입니다. Vivox는 Unity에서 관리하는 음성 채팅 솔루션으로, 멀티플레이어 게임에서 플레이어 간 실시간 음성 및 텍스트 커뮤니케이션을 제공하기 위한 도구입니다.
화면의 주요 구성 요소 설명:
- Vivox 설정 섹션:
- Go to Dashboard: Vivox 서비스의 대시보드로 이동할 수 있는 링크입니다.
- Documentation: Vivox 사용법과 설정에 대한 문서를 참고할 수 있는 링크입니다.
- Environment Configuration (환경 설정):
- Server: Vivox 서비스가 연결될 서버 URL이 제공됩니다.
- Domain: 연결된 도메인 이름입니다.
- Token Issuer: 토큰 발급자의 이름으로, 특정 프로젝트에 대한 고유 식별자입니다.
- Token Key: Vivox 서비스와 통신을 인증하기 위해 사용하는 키입니다.
- Test Mode: 체크된 상태로 보이며, 테스트 모드가 활성화되어 있습니다. 이 모드는 내부 개발/테스트 빌드 중 디버그 토큰을 생성하기 위한 용도로 사용됩니다.
- 오른쪽 패널:
- Unity Cloud Setup의 안내 섹션으로, Vivox 음성 채팅 서비스를 초기화하고 연결하는 과정에 대한 단계별 지침이 포함되어 있습니다.
- "Connect Vivox Voice Chat Service" 단계를 성공적으로 완료했음을 나타내는 녹색 체크 표시가 보입니다.
Vivox를 사용하는 이유:
- 실시간 음성 및 텍스트 통신을 간편하게 구현할 수 있습니다.
- Unity와 완벽히 통합되어 빠르고 쉽게 설정 가능합니다.
- 멀티플레이어 환경에서 음성 채팅을 통해 사용자 경험을 개선합니다.
주의사항:
- Test Mode는 디버그 목적으로만 사용해야 하며, 실제 릴리스 빌드에서는 비활성화하는 것이 중요합니다. Test Mode가 활성화된 상태에서는 토큰 키가 빌드에 포함될 수 있어 보안 위험이 생길 수 있습니다.
Network Setup Overview
- 이 섹션에서는 MR 멀티플레이어 테이블탑 애플리케이션을 시작하는 데 필요한 모든 프리팹(prefab)을 포함한다고 설명합니다.
- 세 가지 주요 구성 요소:
- XRI Network Game Manager
- Network Manager (XR Multiplayer)
- MR Interaction Setup
XRI_Network_Game_Manager
네트워크 게임 관리에 사용되는 핵심 게임 매니저입니다. 이 오브젝트는 XR(확장 현실) 상호작용과 관련된 네트워크 작업을 관리합니다.
Inspector 창 (XRI_Network_Game_Manager) 설명
- Transform:
- XRI_Network_Game_Manager 오브젝트의 위치, 회전, 크기 정보입니다.
- 현재 위치(Position)는 (0, 0, 0), 크기(Scale)는 (1, 1, 1)로 설정되어 있습니다.
- Network Object:
- 네트워크 동작과 관련된 설정들이 포함되어 있습니다.
- 체크박스를 통해 다양한 동작을 설정:
- Always Replicate as Root: 항상 루트로 복제.
- Synchronize Transform: 위치 및 변환 정보를 네트워크를 통해 동기화.
- Active Scene Sync: 현재 활성 씬의 동기화 활성화.
- Dont Destroy with Owner: 오브젝트 소유자가 변경될 때 파괴되지 않음.
- Allow Owner to Parent: 소유자가 부모 설정을 허용.
- GlobalObjectIdHash: 오브젝트의 고유 식별자.
- NetworkManager: 연결된 네트워크 매니저를 참조합니다(현재 null 상태).
- XRI Network Game Manager (Script):
- 네트워크 게임 매니저 스크립트가 연결되어 있습니다.
- 주요 속성:
- Default Player Name: 기본 플레이어 이름은 "Unity Creator"로 설정.
- Auto Connect on Lobby: 로비에서 자동 연결 기능 활성화.
- Positional Voice Chat: 위치 기반 음성 채팅 기능.
- Lobby Manager (Script):
- 로비 매니저 스크립트로 Unity Lobby 서비스와 Unity Relay 서비스와의 통신을 처리합니다.
- Allow Different Scene: 서로 다른 씬에서도 로비를 지원.
- Hide Editor from Lobby: 에디터 환경에서 로비 숨기기.
- Authentication Manager (Script):
- 인증 매니저 스크립트가 Unity 서비스와의 인증 절차를 처리.
- Anonymous Sign In: 익명 로그인을 사용. 이는 멀티플레이어 설정에서 개별 플레이어에 대해 고유한 식별자를 요구합니다.
- Voice Chat Manager (Script):
- 음성 채팅 매니저가 연결되어 있습니다.
XRI Network Game Manager:
이 프리팹은 XR Interaction Toolkit(XRI), Netcode for GameObjects(NGO), Unity Gaming Services(UGS)를 사용하는 네트워크 연결을 관리하는 데 필수적입니다.
Lobby Manager: Unity Lobby 서비스 및 Unity Relay 서비스와의 통신을 처리.
Authentication Manager: Unity 서비스와의 인증 프로세스를 처리.
익명 로그인(Anonymous Sign In)이 기본적으로 활성화되어 있으며, 필요에 따라 다른 제공자로 변경 가능.
익명 로그인을 사용하는 경우, 각 연결된 플레이어는 고유한 ID가 필요합니다.
코드 샘플:
XRI_NetworkGameManager.Instance.QuickJoinLobby():
사용 가능한 방에 연결하거나 새로운 방을 생성하는 데 사용되는 코드입니다.
- XRI Network Game Manager는 XR 환경에서 멀티플레이어 애플리케이션을 개발할 때 핵심적인 역할을 합니다.
- 로비, 인증, 음성 채팅 같은 주요 네트워크 기능을 포함하고 있어 빠르게 설정 및 사용이 가능합니다.
- QuickJoinLobby() 메서드는 빠른 방 연결을 가능하게 하여 사용자 경험을 단순화합니다.
Network Manager XR Multiplayer
XR 멀티플레이어 네트워크 관리를 담당하는 컴포넌트입니다. 이 매니저는 Netcode for GameObjects를 활용하여 멀티플레이어 네트워킹을 설정합니다.
주요 기능 및 사용 목적:
- XR Multiplayer 환경에서 네트워크 관리를 간단하고 효율적으로 수행할 수 있습니다.
- Unity Transport 프로토콜을 사용하여 안정적이고 암호화된 네트워크 통신을 지원합니다.
- 플레이어 프리팹 및 네트워크 프리팹 리스트를 활용하여 동적으로 오브젝트를 관리할 수 있습니다.
Network Manager XR Multiplayer (Script):
XR 멀티플레이어 네트워크 관리를 담당하는 주요 스크립트입니다.
Log Level:
네트워크 로그 수준을 설정합니다. 현재는 "Developer(개발자)"로 설정되어 있어 디버깅과 개발용으로 적합한 로그를 출력합니다.
Run In Background:
백그라운드에서 네트워크 작업이 계속 실행되도록 허용합니다.
Network Config:
네트워크와 관련된 구성 요소를 관리합니다.
- Protocol Version:
- 네트워크 프로토콜의 버전을 설정합니다. 현재 기본값인 0으로 설정되어 있습니다.
- 프로토콜 버전은 클라이언트와 서버 간의 호환성을 보장하는 데 사용됩니다.
- Network Transport:
- 네트워크 데이터 전송을 처리하는 시스템입니다.
- 현재 Network Manager XR Multiplayer가 선택되어 있습니다.
- Player Prefab:
- 네트워크에 연결된 각 클라이언트(플레이어)를 위한 프리팹입니다.
- 현재 설정된 프리팹은 XRI_Network_Player_Avatar입니다.
- Prefabs:
- 런타임 중 네트워크를 통해 생성될 수 있는 프리팹의 리스트를 포함합니다.
- Tick Rate:
- 서버와 클라이언트 간의 업데이트 빈도를 설정합니다. 현재 값은 30으로 설정되어 있어 초당 30회 업데이트됩니다.
- Client Connection Buffer:
- 클라이언트 연결 대기열의 크기를 설정합니다. 현재 값은 10으로 설정되어 있습니다.
- Connection Approval:
- 클라이언트 연결 승인을 활성화할 수 있습니다. 현재 비활성화되어 있습니다.
Connection Data:
- Enable Time Resync:
- 클라이언트와 서버 간의 시간 동기화를 활성화합니다. 현재 비활성화 상태입니다.
- Time Resync Interval:
- 시간 재동기화 간격(초)을 설정합니다. 현재 값은 30초로 설정되어 있습니다.
- Ensure Network Variables:
- 네트워크 변수의 무결성을 보장합니다. 현재 비활성화 상태입니다.
- Enable Scene Management:
- 네트워크를 통해 씬 관리 기능을 활성화합니다. 현재 활성화되어 있습니다.
- Force Same Prefab:
- 동일한 프리팹만 사용하도록 강제합니다. 활성화되어 있습니다.
- Recycle Network ID:
- 네트워크 ID를 재활용하도록 설정합니다. 활성화되어 있으며, 기본 재활용 시간은 120초입니다.
- Rpc Hash Size:
- RPC(Remote Procedure Call) 해시 크기를 설정합니다. 현재 Var Int Four Bytes로 설정되어 있습니다.
- Load Scene Time Out:
- 씬 로드 제한 시간(초)을 설정합니다. 현재 값은 120초입니다.
- Spawn Timeout:
- 오브젝트 생성 제한 시간(초)을 설정합니다. 현재 값은 10초입니다.
기타 옵션:
- Enable Network Logs:
- 네트워크 로그 출력을 활성화합니다. 현재 활성화 상태입니다.
- Network Topology:
- 네트워크 토폴로지를 설정합니다. 현재 Client Server(클라이언트-서버) 모델로 설정되어 있습니다.
- Auto Spawn Player:
- 클라이언트 연결 시 자동으로 플레이어를 생성합니다. 현재 활성화 상태입니다.
- Network Message Pooling:
- 네트워크 메시지 풀링을 활성화합니다.
- Network Profiling Mode:
- 네트워크 프로파일링 모드를 활성화합니다.
Game not running:
네트워크가 현재 실행 중이지 않음을 나타냅니다.
Connect 버튼:
실행 중에 빠르게 네트워크 연결을 테스트할 수 있습니다.
Unity Transport
네트워크 데이터 전송을 처리하는 프로토콜 설정입니다.
Protocol Type:
Unity Transport를 사용하여 데이터 전송이 이루어집니다.
Use Web Sockets:
웹 소켓 사용 여부를 설정합니다.
Use Encryption:
네트워크 암호화를 사용할지 여부를 설정합니다.
Max Packet Queue Size:
패킷 큐의 최대 크기를 나타냅니다(기본값: 512).
Max Payload Size:
페이로드(데이터 패킷)의 최대 크기를 설정합니다(기본값: 6144).
Heartbeat Timeout MS:
하트비트(연결 상태 유지 신호) 타임아웃 시간을 설정합니다.
Connect Timeout MS:
연결 시도 제한 시간(밀리초)을 설정합니다.
Max Connect Attempt:
최대 연결 시도 횟수를 설정합니다.
Disconnect Timeout MS:
연결 끊김 타임아웃 시간을 설정합니다.
Debug Simulator:
디버그용 네트워크 시뮬레이터 설정으로, IP 주소와 포트를 지정합니다.
Allow Remote Connection:
원격 연결 허용 여부를 설정합니다.
MRInteractionSetup
주요 기능 및 사용 목적:
- MR Interaction Setup은 XR 및 MR 환경에서 플레이어와의 상호작용을 설정하고 관리하기 위한 기본 프리팹입니다.
- 사용자 입력, XR 리그 설정, 이벤트 시스템과 같은 핵심 기능을 통합하여 혼합 현실 애플리케이션 개발을 간소화합니다.
- Player Notification UI를 활용해 사용자에게 즉각적인 피드백을 제공합니다.
MRInteractionSetup:
혼합 현실에서 필요한 XR 상호작용 구성 요소를 포함하는 프리팹입니다.
Input Action Manager:
사용자 입력과 XR 상호작용을 처리하는 매니저입니다.
다양한 입력 이벤트를 관리하고, 사용자 입력을 시스템과 연결합니다.
XR Interaction Manager:
XR 상호작용 시스템의 핵심 관리자를 담당합니다.
상호작용 이벤트를 조정하고 XR 장치(예: 컨트롤러)와의 상호작용을 처리합니다.
EventSystem:
Unity UI 이벤트 시스템으로, XR 환경에서도 입력 이벤트를 처리합니다.
XR Origin (XR Rig):
XR 환경에서 플레이어의 위치와 방향을 설정하는 기본 리그입니다.
AR 세션과 함께 동작하며, 플레이어의 위치 추적과 관련된 데이터를 제공합니다.
XR Origin -> Offline Player Avatar:
- 플레이어 프리팹의 수정된 버전을 포함하며, 오프라인 환경에서도 사용할 수 있습니다.
XR Origin -> Local Player Canvas -> Player Notification UI:
- 간단한 알림 팝업을 생성할 수 있는 프리팹입니다.
- 예제 코드:
PlayerHudNotification.Instance.ShowText("Message");
AR Session:
증강 현실(AR) 기능을 처리하며, XR Origin과 연동되어 위치 데이터를 제공합니다.
Virtual Table, UI, Environment:
씬의 구성 요소로, 가상 테이블, 사용자 인터페이스, 환경 요소를 나타냅니다. 각각의 요소는 MR 환경을 구축하는 데 사용됩니다.