Функцию Spawning вызываем по нажатию кнопки NGUI.
Скрипт вешаю на камеру и задаю 4 пустых объекта которые служат точками спавна.
Используется csharp
using UnityEngine;
using System.Collections;
using Hashtable = ExitGames.Client.Photon.Hashtable;
public class NetworkSpawn : Photon.MonoBehaviour {
public GameObject Player;
public GameObject Spawn1;
public GameObject Spawn2;
public GameObject Spawn3;
public GameObject Spawn4;
private GameObject Spawner;
private int RandomSpawn;
void Update () {
RandomSpawn = Random.Range(1,5);
if(RandomSpawn == 1){
Spawner = Spawn1;
}
if(RandomSpawn == 2){
Spawner = Spawn2;
}
if(RandomSpawn == 3){
Spawner = Spawn3;
}
if(RandomSpawn == 4){
Spawner = Spawn4;
}
}
void Spawning () {
Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation);
}
}
После добавления RPC совсем не хочет работать: когда нажимаем на кнопку спавна ничего не работает и выписывает ошибку:
NullReferenceException: Object reference not set to an instance of an object
NetworkSpawn.Spawning () (at Assets/Fiels/Scripts/Multiplayer/Photon/Player/NetworkSpawn.cs:33)
UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions)
UIButtonMessage:Send() (at Assets/NGUI/Scripts/Interaction/UIButtonMessage.cs:57)
UIButtonMessage:OnClick() (at Assets/NGUI/Scripts/Interaction/UIButtonMessage.cs:38)
UnityEngine.GameObject:SendMessage(String, SendMessageOptions)
UICamera:ProcessTouch(MouseOrTouch, Boolean, Boolean) (at Assets/NGUI/Scripts/UI/UICamera.cs:451)
UICamera:Update() (at Assets/NGUI/Scripts/UI/UICamera.cs:330)
Используется csharp
using UnityEngine;
using System.Collections;
using Hashtable = ExitGames.Client.Photon.Hashtable;
public class NetworkSpawn : Photon.MonoBehaviour {
public GameObject Player;
public GameObject Spawn1;
public GameObject Spawn2;
public GameObject Spawn3;
public GameObject Spawn4;
private GameObject Spawner;
private int RandomSpawn;
void Update () {
RandomSpawn = Random.Range(1,5);
if(RandomSpawn == 1){
Spawner = Spawn1;
}
if(RandomSpawn == 2){
Spawner = Spawn2;
}
if(RandomSpawn == 3){
Spawner = Spawn3;
}
if(RandomSpawn == 4){
Spawner = Spawn4;
}
}
[RPC]
void Spawning () {
photonView.RPC("Spawned", PhotonTargets.AllBuffered);
}
[RPC]
void Spawned () {
Instantiate(Player,Spawner.transform.position,Spawner.transform.rotation);
}
}