Есть у меня код для смены оружия через SetActive (1 оружие появляется через SetActive(true), другое убирается)
[PunRPC]public void SwitchWeapon()
{
for (int i = 0; i < unlockWeapons.Count; i++)
{
if (unlockWeapons[i].activeSelf == true)
{
unlockWeapons[i].SetActive(false);
if (i != 0)
{
unlockWeapons[i - 1].SetActive(true);
weaponIcon.sprite = unlockWeapons[i - 1].GetComponent<SpriteRenderer>().sprite;
}
else
{
unlockWeapons[unlockWeapons.Count - 1].SetActive(true);
weaponIcon.sprite = unlockWeapons[unlockWeapons.Count - 1].GetComponent<SpriteRenderer>().sprite;
}
weaponIcon.SetNativeSize();
break;
}
}
}
И RPC функция для активации SwitchWeapon() с синхронизацией:
photonView.RPC(nameof(SwitchWeapon), RpcTarget.AllBufferedViaServer);
Но это не работает, у игрока, который активирует эту функцию на "Q", это работает, но у другого игрока ничего не меняется.
У самих gameobject'ов оружий есть компонент Photon View с Ownership transfer, у которого значение я поставил "Request", и Photon Transform view classic.