- Home /
Weapon switching not registering across players
I am trying to make a FPS multiplayer game and have run into an issue regarding switching between primary and secondary weapons. Although each player is able to see what gun they themselves have equipped, they are unable to see the secondary gun of other players when the other players switch guns. this is the current script that is working for the local player.
using UnityEngine;
public class WeaponSwitch : MonoBehaviour {
public int selectedWeapon = 0;
public GameObject me;
void Start () {
SelectWeapon ();
}
[PunRPC]
void Update () {
int previousSelectedWeapon = selectedWeapon;
if (Input.GetAxis ("Mouse ScrollWheel") > 0f) {
if (selectedWeapon >= transform.childCount - 1) {
selectedWeapon = 0;
} else
selectedWeapon++;
}
if (Input.GetAxis ("Mouse ScrollWheel") < 0f) {
if (selectedWeapon <= 0) {
selectedWeapon = transform.childCount - 1;
} else
selectedWeapon--;
}
if (previousSelectedWeapon != selectedWeapon) {
SelectWeapon ();
}
}
[PunRPC]
public void SelectWeapon ()
{
int i = 0;
foreach (Transform weapon in transform)
{
if (i == selectedWeapon)
{
weapon.gameObject.SetActive(true);
}
else
weapon.gameObject.SetActive(false);
i++;
}
}
}
Answer by ChristianSimon · Feb 22, 2018 at 04:32 PM
Hi,
you don't have to mark each function with the [PunRPC] attribute, just those you actually want to use for RPC calls. Currently the weapon switch is also not synchronized and just processed on your local player. This is one thing that can be handled with a RPC call pretty well. Another thing is that the Input made in this frame will be applied to each object with the above described Update function. This can be avoided by using the if (!GetComponent<PhotonView>().isMine)
condition.
Since this are quite a few things that have to be changed, I would recommend you taking a look at the Basics Tutorial first and at the RPCs and RaiseEvent documentation page afterwards.
Your answer
Follow this Question
Related Questions
Networking: Keep room alive without active players 0 Answers
Photon - How to spawn enemies that don't have a PhotonView and be synced with other clients 1 Answer
How many current players will I get daily if I have 10k installs 1 Answer
Synchronize multiple spawnpoints (Photon + RCC) 0 Answers
RPC to certain player in room using their nickname/userID 0 Answers