Спаун в Unity задерживается

Я реализовал сетевую игру, как в учебном пособии, в котором клиент отправляет огонь Cmd на сервер, а затем сервер порождает пулю всем игрокам.

Все идет хорошо, когда я играю по локальной сети (пинг < 20 мс). Но когда я пытаюсь запустить на стороне Интернет с помощью Match Maker, пинг>80 мс и пуля задерживается на клиенте.

В игре есть корабль, который умеет стрелять, поэтому, когда корабль движется слева направо, то я стреляю, пуля задерживается. Когда я проверяю другие игры (не единство), кажется, что пуля работает локально. Но это не работает на Unity, так как сетевой объект должен появляться на сервере. Задержка съемки только для моего игрока. Есть ли какая-нибудь работа вокруг, чтобы исправить задержку? Спасибо за любую помощь.

1 ответ

Вы можете попытаться выполнить расчеты для хитового клиента на стороне (то есть вы рассчитываете, попали ли вы в противника), а если вы попали в противника, вы можете послать урон или функцию / бул по сети.

Это значительно уменьшит трафик. И, скорее всего, решить вашу проблему.

Посмотрите на эту документацию по единству для получения дополнительной информации о том, как синхронизировать жизни. https://unity3d.com/learn/tutorials/topics/multiplayer-networking/networking-player-health

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