Как передать свойства снаряду от игрока, выстрельнувшего им, используя Photon Pun2?

Использую Photon.Pun в Unity, для реализации стрельбы. Один игрок выстреливает снаряд и сразу передает ему значение урона.

var projectile = PhotonNetwork.Instantiate(bullet.name, attackPoint.transform.position, player.transform.rotation);
projectile.GetComponent<Projectile>().damage = currentWeapon.Damage;

В скрипте снаряда я синхронизирую урон с помощью фотона.

public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        if (stream.IsWriting)
            stream.SendNext(damage);
        else
            damage = (float)stream.ReceiveNext();
    }

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

Получается следующая ситуация:

  • Стандартный урон снаряда = 1
  • Первый игрок выпускает снаряд, задает ему урон = 10
  • Снаряд попадает во второго игрока, нанося стандартный урон = 1, потому что не успел получить настоящий урон от фотона

Вопрос: как передавать урон снаряду от стрелка?


Ответы (0 шт):