So I have a simple character selection screen set up - 5 buttons with colors - when a client clicks on a button, that button is not interactable anymore. I also have it so if the player wants a different character, they can click another available one, and then it gets set to non-interactable, and their previous choice is re-enabled. BUT, if another client selects a character, the 1st clients choice get rewritten to whatever client #2 selected.
I have setup an RPC to handle the syncing of choice, but am not sure how to go about fixing it so that each player can select a character.
This is the whole script that handles character selection. The "OnSelect" and "OnClicked" are for the buttons.
public class CharacterSelect : MonoBehaviour
{
PhotonView PV;
[SerializeField] public Button[] characters;
private Button lastClicked = null;
private void Awake()
{
PV = GetComponent<PhotonView>();
}
[PunRPC]
public void OnSelect(int id)
{
if(lastClicked != null)
{
lastClicked.interactable = true;
}
characters[id].interactable = false;
lastClicked = characters[id];
}
public void OnClicked(int id)
{
PV.RPC("OnSelect", RpcTarget.All, id);
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…