Синхронизация в реальном времени c в Unity с использованием Photon Unity Network (мультиплеер) - PullRequest
0 голосов
/ 09 марта 2020

Я работаю над демонстрационным проектом, где я использую Unity 3D и сеть Photon Unity (PUN) для игры в реальном времени.

Here's an image

Человек на верхней панели - это вражеский отряд, управляемый другим игроком, который наносит урон игроку слева внизу (1/3 л.с. слева). Однако человек в правом нижнем углу - это целитель, который может исцелить нижнего левого игрока (оба контролируются местным игроком).

Вот моя проблема! Так как он не основан на пошаговых операциях и должен происходить в режиме реального времени. Как мне спроектировать мою многопользовательскую систему? Ранее я работал над пошаговыми играми, где я просто передаю индексы и отражаю события, происходящие локально, в том числе в удаленном проигрывателе.

Но здесь, с задержкой на картинке, я не знаю, как поступить ! Я хотел бы, чтобы целитель исцелил игрока локально, а также на телефоне удаленного игрока, прежде чем он будет атакован удаленным игроком, или убил игрока до того, как целитель сможет исцелить его hp в зависимости от отметки времени, в которой происходят события. и отражать это на обоих устройствах.

1 Ответ

1 голос
/ 09 марта 2020

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

Если целитель исцелит вашего локального игрока, то будут и удаленные экземпляры вашего локального игрока. Конечно, ваша система исцеления должна быть подключена к сети, убедитесь, что вы go изучили наш базовый учебник c, чтобы научиться внедрять простую систему здравоохранения.

https://doc.photonengine.com/en-us/pun/v2/demos-and-tutorials/pun-basics-tutorial/player-networking#health_synchronization

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

  1. передача владения между игроком и целителем: https://doc.photonengine.com/en-us/pun/v1/demos-and-tutorials/package-demos/ownership-transfer (это демоверсия v1, но принцип по-прежнему применим к v2 )

  2. имеет невидимого сетевого игрока и, используя в своей игре свои собственные логи c, имеет игрока, соответствующего этому невидимому сетевому игроку, или целителя, соответствующего ему.

...