Пули не двигаются вперед, но остаются на месте оружия - PullRequest
0 голосов
/ 08 мая 2018

Когда игра запускается на клиенте [localserver], пули не двигаются вперед в пространстве. Они просто остаются в месте нахождения оружия. См. Изображение ниже для иллюстрации проблемы:

enter image description here

 Network Manegar: https://imgur.com/mfcBo61
Player: https://imgur.com/DuOIy67
Bullet: https://imgur.com/cVq5HFU

и это мой сценарий

    void Update()
   {
      if (!isLocalPlayer)
      {
         return;
      }
      if (Input.GetKey(KeyCode.Mouse0))
      {
         CmdBulletFire();
      }
   }
  [Command]
  void CmdBulletFire()
  {
    // create the bullet prefab
    GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);

    //add velocity to bullet
    bullet.GetComponent<Rigidbody>().AddForce(transform.TransformDirection(Vector3.forward * 50000f));
    //Spawn the bullet
    NetworkServer.Spawn(bullet);
    //Destroy the bullet
    Destroy(bullet, 5f);
  }

В чем может быть проблема и как мне ее решить?

Все еще проблема: (

1 Ответ

0 голосов
/ 08 мая 2018

В вашей функции обновления вы должны убедиться, что это isLocalPlayer перед вызовом CmdBulletFire().

Ваша новая функция обновления:

void Update()
{
    if (!isLocalPlayer)
    {
        return;
    }

    if (Input.GetKey(KeyCode.Mouse0))
    {
        CmdBulletFire();
    }
}

Наконец, убедитесь, что вы делаете следующее:

1. Присоедините NetworkTransform и NetworkIdentity компоненты к сборному.

2. Зарегистрируйте префаб в NetworkManager:

введите описание изображения здесь

...