void SpawnPlayer() { object playerSelected; if (PhotonNetwork.LocalPlayer.CustomProperties.TryGetValue(CustomProps.CHARACTER_SELECTION_NAME, out playerSelected)) { string temp = playerSelected as string; int randomSpawnPoint = Random.Range(0, spawnPositions.Length - 1); Vector3 instantiatePosition = spawnPositions[randomSpawnPoint].position; GameObject selected = GameManager.instance.characters.Find(a => a.name.ToLower() == temp.ToLower()); //GameObject player = Instantiate(selected, instantiatePosition, Quaternion.identity); GameObject player = PhotonNetwork.Instantiate(temp, instantiatePosition, Quaternion.identity); PhotonView photonView = player.GetComponent <PhotonView>(); if (photonView.Owner.IsMasterClient) { if (PhotonNetwork.AllocateRoomViewID(photonView)) { object[] data = new object[] { //player.transform.position - battleArena.transform.position, player.transform.rotation, photonView.ViewID, playerSelected player.transform.position - Environment.transform.position, player.transform.rotation, photonView.ViewID, playerSelected }; RaiseEventOptions raise = new RaiseEventOptions { Receivers = ReceiverGroup.Others, CachingOption = EventCaching.AddToRoomCache }; SendOptions options = new SendOptions { Reliability = true }; //Raise events PhotonNetwork.RaiseEvent((byte)RaiseEventCodes.PlayerSpawnEventCode, data, raise, options); } else { Debug.Log("Failed to allocate a viewID"); //Destroy(player); } } } else { Debug.Log("cant spawn player"); } }