Здраствуйте!
У меня возникла проблема с многопользовательской игрой:
Существует
"Игрок 1" который предположим запустил игру в Unity и
"игрок 2"б который играет через скомпилированный файл той же игры. (Разницы не имеет кто держит локальный хост (Я проверял) ).
Когда игрок который запустил игру в Unity (LocalPlayer) стреляет и попадает в другого игрока (RemotePlayer), в консоли Unity отображается "test_1", но если игрок в отдельном приложении (RemotePlayer) стреляет в игрока (LocalPlayer) "test_1" не появляется хотя должно. Также по какой то причине не отображается в консоли последняя часть кода: "Debug.Log ("В игрока " + _ID + " произвел выстрел");" .
Прикрепляю папку игры (Яндекс.Диск)
P.s: Наверно проблема в Playershoot.sc
Код:using UnityEngine;
using UnityEngine.Networking;
public class PlayerShoot : NetworkBehaviour {
public Weapon weapon;
[SerializeField]
private Camera cam;
[SerializeField]
private LayerMask mask;
void Start () {
if (cam == null) {
Debug.LogError ("PlayerShoot: No camera found");
this.enabled = false;
}
}
void Update () {
if (Input.GetButtonDown("Fire1")) {
Shoot ();
}
}
[Client]
void Shoot () {
RaycastHit _hit;
if (Physics.Raycast (cam.transform.position, cam.transform.forward, out _hit, weapon.range, mask)) {
if (_hit.collider.tag == "Player")
CmdPlayerShoot (_hit.collider.name);
Debug.Log ("Test_1");
}
}
[Command]
void CmdPlayerShoot (string _ID) {
Debug.Log ("В игрока " + _ID + " произвел выстрел");
}
}
Заранее благодарен за ответ!
https://yadi.sk/d/WyxP_qhPJqRZdQ