2016-02-19 3 views
1

В настоящее время я пытаюсь создать систему лобби для своей игры, в лобби есть много проблем, но я медленно прокладываю себе путь через них. Однако я не могу найти способ сделать хост автоматически добавленным как игрок в игре, когда он запустит сервер. Никогда не будет ситуации, когда хост будет действовать только как сервер, поэтому мне нужно, чтобы он автоматически добавлялся в игру.Unity добавляет хост в качестве игрока при запуске сервера

Я пробовал кучу разных вещей с ClientScene.AddPlayer() Но я не могу сделать эту работу.

Кроме того, я не могу найти документацию о том, какие функции используют различные кнопки в стандартном сетевом лобби фонового управления, так что мне трудно реплицировать поведение.

У кого-нибудь есть хорошие источники/идеи по этому вопросу?

+0

Я действительно просмотрел код для одного из проектов NetworkLobbyManager Unity, выпущенного в Asset Store, а затем вызвал функции из кода, которые вызывается при нажатии кнопок. Это привело к некоторым ошибкам, поэтому еще не ясно, какие функции нужно вызывать и в каком порядке. Если вы хотите попробовать то же самое, вы можете достичь лучшего результата, чем я. – user3071284

+0

Я не уверен, в чем проблема, но проверьте это: http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnServerInitialized.html Используя этот магический метод, все, что вам нужно, добавить сервер в игру. –

ответ

0

В данном сетевом менеджере есть метод StartHost(). Попробуйте это для запуска сервера.

Смотрите Scripting API для NetworkManager.StartHost() и все методы от NetworkManager

+0

Это не то, что я спрашиваю. Я знаю, как запустить сервер и добавить клиентов. Проблема в том, что стандартное единство GUI использует WAY слишком мало, когда я переношу его на мобильное устройство, и поэтому я создаю свой собственный графический интерфейс. Я не могу заставить локального клиента автоматически появляться, когда он размещает сервер, и поэтому он никогда не добавляется в игру (удаленные клиенты добавляются успешно, когда они присоединяются к лобби) –

+0

Итак, вы пишете custum NetworkManager? Или что вы делаете? Можете ли вы вставить код для лучшего понимания? – Rafiwui

0

Вы должны написать пользовательский интерфейс и менеджер сети, чтобы исключить вариант Start Server GUI, который по умолчанию обеспечивают компонентом Unity Networking GUI. Вы можете просмотреть этот простой учебник (UI & Custom Net Manager), чтобы понять его.