Я использовал встроенную многопользовательскую систему Unity для создания многопользовательской игры, и я завершил всю свою игровую работу.
В настоящее время в моей многопользовательской игре оба моих игрока появляются в начале игры, но я хочу, чтобы они появлялись через 10 секунд ожидания.
Поскольку я хочу обеспечить такую функциональность в игре, я хочу уделить время игрокам.
![enter image description here](https://i.stack.imgur.com/DVqBu.png)
ДляПо этой причине, я погуглил по нескольким причинам и нашел эту ссылку: Настраиваемое создание плеера
Таким образом, я могу обновить проигрыватель и затем подключиться к сетевому соединению, при этом существуют две проблемы:
- не было никакого способа дать 10 секунд ожидания, потому что обратный вызов вызывался автоматически - OnServerAddPlayer
- Метод OnServerAddPlayer не вызывался автоматически в подклассе NetworkManager
Что мне нужно для этого сделать?Вот мой код NetworkManager:
public class DodgelsNetworkManager : NetworkManager
{
public override void OnClientConnect (NetworkConnection connection)
{
base.OnClientConnect (connection);
GameHUDController.Instance.UpdateDebugMesssage ("\nOnClientConnect");
Camera.main.SendMessage (GameConstants.ACTIVATE_NETWORK_WAITING_PANEL, true, SendMessageOptions.DontRequireReceiver);
LayerScroller.stopScrolling = true;
// client joined the host
if (connection.connectionId > 0) {
StartCoroutine (AfterDelayHideWaitingDialog ());
}
}
IEnumerator AfterDelayHideWaitingDialog ()
{
GameObject networkPlayerObj = null;
while (networkPlayerObj == null) {
yield return new WaitForSeconds (0.1f);
networkPlayerObj = GameObject.FindGameObjectWithTag (GameConstants.TAG_HUMAN_PLAYER);
}
networkPlayerObj.GetComponent<NetworkPlayerController> ().HidePlayerWaitingDialog ();
}
public override void OnServerAddPlayer (NetworkConnection conn, short playerControllerId)
{
Debug.Log ("-------------OnServerAddPlayer");
GameObject player = Instantiate (playerPrefab, startPositions [conn.connectionId].position, Quaternion.identity);
NetworkServer.AddPlayerForConnection (conn, player, playerControllerId);
}
}
Поделитесь своими предложениями по этому поводу.