Как отобразить счет каждого игрока [Network Manager]

Я работаю над простой многопользовательской (пока что на 2-х игроков) игрой, основанной на встроенном Network Manager (на основе этого замечательного учебника https://unity3d.com/learn/tutorials/s/multiplayer-networking), и у меня нет абсолютно никаких Идея, как решить мою проблему. Каждый учебник о системах озвучивания, который я нашел, был посвящен локальной многопользовательской игре (без использования Network Manager).

Мой вопрос: как отобразить счет обоих игроков на интерфейсе каждого игрока в формате, подобном [Player1Score: Player2Score], если я сохраню счет игрока в его экземпляре префаба игрока (в виде поля). Я хотел бы отображать оценки любым способом, в виде отдельной строки или в виде добавленной строки (текст пользовательского интерфейса).

Любая помощь и идеи приветствуются! Ура!

2 ответа

Решение

Ну, в принципе, насколько я знаю, вам, во-первых, нужен контроллер (на стороне сервера), который ведет счет. Затем через Syncvar и RPC вы можете распространять среди клиентов нужную вам оценку. Логика там по вашему выбору, например, вы можете использовать делегатов каждый раз, когда набирается очко (это будет зависеть от вашей игры), и синхронизировать переменную.

https://docs.unity3d.com/Manual/UNetActions.html

Я не знаю, что у вас за дело? Но могу ли я предложить использовать Socket для передачи данных между клиентом и сервером. Оттуда можно показать счет каждой стороны противнику. Через https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.socket?view=net-5.0

Другие вопросы по тегам