Проблема решена, это было из за того что 2 приложения клиент и сервер были запущены на 1пк, после того как сервер и клиент были запущены на разных пк, почти все заработало, но почему то клиент видит как сервер меняет оружие, а сервер не видит как клиент меняет оружие. Есть у кого варианты решения данной задачки?
Что никто не знает как это сделать? Я уже весь инет перерыл по поводу смены оружия в мультиплеере и его синхронизацию но пусто!!! Помогите -_- пожалуйста)
Решение:
spoilerusing UnityEngine;
using UnityEngine.Networking;
public class PlayerScrolWeapon : NetworkBehaviour
{
public GameObject[] weapon;
[SyncVar] int syncWeaponIndex;
private int weaponIndex = 0;
[Client]
void FixedUpdate()
{
ScrolWeapon();
if(isLocalPlayer)
CmdSendToServerSyncWeapon(weaponIndex);
SendToClientSyncWeapon();
}
void ScrolWeapon()
{
if(isLocalPlayer)
{
if(Input.GetAxisRaw("Mouse ScrollWheel") > 0f)
{
if (weaponIndex > 3)
weaponIndex = 0;
else
weaponIndex++;
}
else if(Input.GetAxisRaw("Mouse ScrollWheel") < 0f)
{
if (weaponIndex < 0)
weaponIndex = 3;
else
weaponIndex--;
}
for (int i = 0; i < 4; i++)
if (i == weaponIndex)
weapon[i].SetActive(true);
else
weapon[i].SetActive(false);
}
}
void SendToClientSyncWeapon()
{
if(!isLocalPlayer)
{
for (int i = 0; i < 4; i++)
if (i == syncWeaponIndex)
weapon[i].SetActive(true);
else
weapon[i].SetActive(false);
}
}
[Command]
void CmdSendToServerSyncWeapon(int _weaponIndex)
{
syncWeaponIndex = _weaponIndex;
}
}
Это 1 скрипт который отвечает и за смену оружия и за его синхронизацию, может кому то пригодится.
P.S. Тема закрыта!