2017-02-15 23 views
1

я последовал за учебник единства онлайн многопользовательской игры (here), а архитектура является следующее: Client + Server architectureUnity5 - сделать сервер только для многопользовательской игры

Но я хотел бы иметь такую ​​архитектуру:

Server only architecture

Я хотел бы действительно разделить клиентскую часть и часть сервера в онлайн-игре. Я новичок в Unity и особенно в онлайн-многопользовательской игре, и я действительно не знаю, как это сделать. Я не хочу решения, но, может быть, идеи о том, как это сделать.

Большое спасибо за помощь.

+0

Простой способ сохранить то, что у вас есть, но «главный» клиент не принимает вход любого игрока (и не имеет каких-либо конкретных элементов игрока, например, персонажа, оружия и т. Д.). – NPSF3000

+0

Так, например, с помощью теста 'if (Network.isServer) 'test, я могу удалить весь контроллер? – iAmoric

+0

Исправить. 15chars. – NPSF3000

ответ

1

Я удивлен, что вы не изучили Тут и не поставили этот вопрос. очевидно, вы можете сделать отдельный сервер.

В единстве UNet basic concept заявил:

В сетевой системе единства, игры имеют сервер и множественные клиентов. Когда нет выделенного сервера, один из клиентов играет роль сервера - мы называем этот клиент «хост»

Три режима UNET Мультиплеер игры:

многопользовательская игра в сети может работать в три режима - как клиента, как выделенный сервер, или как «Host», который одновременно является клиентом и сервером. Сетевое взаимодействие предназначено для того, чтобы один и тот же код игры и активы работали во всех этих случаях. Разработка для однопользовательской версии игры и многопользовательской версии игры должна быть одной и той же.

NetworkManager имеет funcions для ввода каждого из этих режимов:

NetworkManager.StartClient() 
NetworkManager.StartServer() 
NetworkManager.StartHost() 

Check UNetManager for more details

0

Вы можете открыть экземпляр Unity в качестве сервера посвятить.

NetworkManager.StartServer();

Однако для текущего состояния UNET вы можете иметь только 1 номер за экземплярами Unity.

Это означает, что если вы хотите открыть много игровой комнаты, то это будет стоить вам много аппаратного обеспечения.

Запуск в режиме безголового (без GUI) поможет вам немного, но этого недостаточно (в настоящее время я сделал это на DO).

Так что моя рекомендация не использует UNET, если вы хотите, чтобы в вашей игре были массовые пользователи.