private void SpawnPlayer()
{
int idx = PhotonNetwork.LocalPlayer.ActorNumber;
GameObject prefab = Managers.Resource.Load<GameObject>("Prefabs/Player");
GameObject go;
if (idx == 1)
{
go = PhotonNetwork.Instantiate(Path.Combine("Prefabs", "Player"), new Vector3(-3, 2, 0), Quaternion.identity);
}
else
{
go = PhotonNetwork.Instantiate(Path.Combine("Prefabs", "Player"), new Vector3(3, 2, 0), Quaternion.identity);
}
}
[PunRPC]
public void [함수이름]()
{
}
메서드 위에 RPC를 붙여줘야한다. 대표적으로 총알을 발사하는 로직, 이럴경우 위치 동기화가 되지 않아도 부드러운 총알의 움직임이 구현 가능
public override void OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable changedProps)
{
GameObject entry;
if (_playerRowDict.TryGetValue(targetPlayer.ActorNumber, out entry))
{
object isPlayerReady;
if (changedProps.TryGetValue("isReady", out isPlayerReady))
{
entry.GetComponent<LobbyPlayerRow>().SetReadyUI((bool)isPlayerReady);
}
}
bool isAllReady = CheckAllPlayerReady();
OnSetGameStartButton.Invoke(isAllReady);
}