Есть несколько возможных причин, по которым объект не создается при спавне:
1. Игровой объект Rifle или Melee не правильно настроены в PhotonNetwork.Instantiate(). Убедитесь, что вы указываете правильное имя префаба, который вы хотите создать, и убедитесь, что эти префабы добавлены внутри Network Prefabs в Photon View.
2. Vector3.zero - это позиция, где объект будет создан. Убедитесь, что эта позиция находится в допустимых границах вашей игровой сцены. Если объект создается вне поля зрения камеры, он может не отображаться.
3. Quaternion.identity - это поворот объекта при его создании. Убедитесь, что объекты имеют правильный поворот или установите Quaternion.identity, чтобы объект не поворачивался при создании.
4. Убедитесь, что вы находитесь в комнате Photon. Если вы не находитесь в комнате или ваш игровой клиент не подключен к Photon, объект не будет создан.
5. Удалите проверку наличия объекта с тегом "Rifle" или "Melee" на вашей сцене. Эта проверка может некорректно определять наличие объекта и предотвращать его создание при спавне.
6. Убедитесь, что ваш код Select(int slot) вызывается с правильными параметрами. Проверьте свои условия if (slot == 0 && rifle && GameObject.FindGameObjectWithTag("Rifle") == null) и if (slot == 1 && melee && GameObject.FindGameObjectWithTag("Melee") == null), чтобы убедиться, что они выполняются и создание объекта происходит.