Unity 네트워크 관리자 사용 가이드
이 문서는 Unity의 네트워크 관리자(Network Manager) 컴포넌트에 대한 설명으로, 멀티플레이어 게임의 상태를 관리하고, 다양한 기능을 제공합니다. 이 가이드를 통해 Network Manager의 기능을 이해하고 활용할 수 있도록 설명합니다.
목차
Network Manager 개요
Network Manager는 네트워크 게임의 상태를 제어하며, 게임 오브젝트 스폰 및 씬 전환 관리를 위한 인터페이스를 제공합니다. 이 컴포넌트는 Unity에서 멀티플레이어 게임을 설정하고 관리하는 데 필수적입니다.
주요 프로퍼티
| 프로퍼티 이름 | 설명 |
|---|---|
| Dont Destroy On Load | 씬 변경 시 Network Manager 게임 오브젝트의 파괴 여부를 결정합니다. |
| Run In Background | 게임 포커스가 없을 때 게임 실행 여부를 제어합니다. |
| Log Level | 콘솔 창에 출력되는 정보의 양을 설정합니다. |
| Offline Scene | 네트워크 세션이 중지되었을 때 자동 전환될 씬을 설정합니다. |
| Online Scene | 네트워크 세션이 시작될 때 자동 전환될 씬을 설정합니다. |
| Use Web Sockets | WebSocket 연결을 사용할지 여부를 설정합니다. |
| Network Address | 사용 중인 네트워크 주소를 확인합니다. |
| Network Port | 사용 중인 네트워크 포트를 확인합니다. |
프리팹 및 플레이어 설정
| 프로퍼티 이름 | 설명 |
|---|---|
| Player Prefab | 서버에서 플레이어 게임 오브젝트를 생성할 기본 프리팹을 정의합니다. |
| Auto Create Player | 연결 시 자동으로 플레이어 오브젝트를 생성할지 여부를 설정합니다. |
| Player Spawn Method | 새 플레이어 게임 오브젝트의 스폰 위치를 결정하는 방식을 정의합니다. |
| Registered Spawnable Prefabs | 네트워크 관리자가 인식할 수 있는 프리팹 리스트입니다. |
고급 설정
| 프로퍼티 이름 | 설명 |
|---|---|
| Max Connections | 지원하는 최대 동시 네트워크 연결 수를 정의합니다. |
| Qos Channels | 다양한 커뮤니케이션 채널과 QoS(Quality Of Service) 설정입니다. |
| Timeouts | 네트워크 연결 및 메시지 전송 관련 타임아웃 설정입니다. |
예제 코드
여기서는 Network Manager를 설정하고 사용하는 간단한 예제를 코드로 제공합니다.
using UnityEngine;
using UnityEngine.Networking;
public class MyNetworkManager : NetworkManager
{
public void StartGame()
{
StartHost(); // 호스트 시작
}
public void StopGame()
{
StopHost(); // 호스트 중지
}
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
GameObject player = Instantiate(playerPrefab); //플레이어 프리팹 인스턴스화
NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}
}
위 예제는 간단한 멀티플레이어 게임을 시작하고 종료하는 기능을 정의합니다. OnServerAddPlayer 메서드는 새로운 플레이어가 서버에 추가될 때 호출되어 플레이어를 스폰하는 역할을 합니다.
이 문서를 통해 Unity Network Manager를 이해하고, 멀티플레이어 게임 관리에 활용해보세요!