중요: UNet은 지원이 중단된 솔루션이며, 새로운 멀티플레이어 및 네트워킹 솔루션(게임 오브젝트용 넷코드)이 개발 중입니다. 자세한 내용과 다음 단계는 게임 오브젝트용 Unity 넷코드 웹사이트에 있는 정보를 참조하십시오. |
Network Manager를 Network Manager HUD와 함께 사용하면 NetworkManager.StartMatchmaker 메서드가 매치메이킹을 활성화하고 NetworkManager.matchMaker 프로퍼티를 NetworkMatch 오브젝트로 채웁니다. 일단 활성화되면 Network Manager HUD는 이 프로퍼티를 사용하고 NetworkManager에 대한 메서드를 호출하여 단순한 매치메이킹을 수행합니다.
NetworkManager
에는 NetworkManager
에서 고유 클래스를 파생하여 커스터마이즈할 수 있는 가상 함수가 있습니다. 그런 다음 새 NetworkManager
클래스가 매치메이커 콜백에 응답하는 방식을 커스터마이즈할 수 있습니다.
여기에는 콜백과 해당 기본 구현이 있습니다. 이 콜백을 오버라이드하는 경우 일부 메서드는 기본 구현을 호출해야 합니다. 그렇지 않으면 Network Manager HUD의 기능이 작동하지 않게 됩니다. 예를 들어, 기본 구현 OnMatchCreate
는 호스트를 시작합니다.
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.Match;
public class CustomManager : NetworkManager {
public override void OnMatchCreate(bool success, string extendedInfo, MatchInfo matchInfo) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchCreate Success:{0}, ExtendedInfo:{1}, matchInfo:{2}", success, extendedInfo, matchInfo); }
if(success)
StartHost(matchInfo);
}
public override void OnMatchJoined(bool success, string extendedInfo, MatchInfo matchInfo) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchJoined Success:{0}, ExtendedInfo:{1}, matchInfo:{2}", success, extendedInfo, matchInfo); }
if(success)
StartClient(matchInfo);
}
public override void OnMatchList(bool success, string extendedInfo, List<MatchInfoSnapshot> matchList) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchList Success:{0}, ExtendedInfo:{1}, matchList.Count:{2}", success, extendedInfo, matchList.Count); }
matches = matchList;
}
public override void OnDestroyMatch(bool success, string extendedInfo) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); }
}
public override void OnDropConnection(bool success, string extendedInfo) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); }
}
public override void OnSetMatchAttributes(bool success, string extendedInfo) {
if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); }
}
}