- Home /
Question by
Icedover · Jul 17, 2014 at 02:00 AM ·
networkingnullreferenceexception
Unity Networking - Error on spawning Player
NullReferenceException
UnityEngine.Network.Instantiate (UnityEngine.Object prefab, Vector3 position, Quaternion rotation, Int32 group) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/Networking.cs:627)
NetworkHandler.spawnPlayer () (at Assets/Scripts/NetworkHandler.cs:49)
NetworkHandler.OnGUI () (at Assets/Scripts/NetworkHandler.cs:85)
That is the error I am receiving when I try to join a server
NetworkHandler.CS
using UnityEngine;
using System.Collections;
public class NetworkHandler : MonoBehaviour {
string registeredGameName = "Warlords_Of_Space_Prototype";
float refreshRequestLenghth = 3.0f;
HostData[] hostData;
int port = 21025;
private void startServer()
{
Network.InitializeServer (16, port, false);
MasterServer.RegisterHost (registeredGameName, "Master Server");
}
void OnMasterServerEvent(MasterServerEvent masterServerEvent)
{
if (masterServerEvent == MasterServerEvent.RegistrationSucceeded) {
Debug.Log ("Registration successful!");
}
}
public IEnumerator RefreshHostList()
{
Debug.Log ("Refreshing.");
MasterServer.RequestHostList (registeredGameName);
float timeEnd = Time.time + refreshRequestLenghth;
while (Time.time<timeEnd) {
hostData = MasterServer.PollHostList ();
yield return new WaitForEndOfFrame();
}
if (hostData == null || hostData.Length == 0) {
Debug.Log("no active servers");
}else
Debug.Log(hostData.Length + " server(s) found");
}
private void spawnPlayer()
{
Debug.Log ("Spawning Player");
Network.Instantiate(Resources.Load ("Prefabs/pShip"), new Vector3(0f,2.5f,0f), Quaternion.identity, 1);
}
void OnServerInitalize()
{
Debug.Log ("Server has been initialized");
spawnPlayer ();
}
void OnPlayerDisconnected(NetworkPlayer player)
{
Network.RemoveRPCs (player);
Network.DestroyPlayerObjects (player);
}
void OnApplicationQuit()
{
if (Network.isServer) {
Network.Disconnect(200);
MasterServer.UnregisterHost();
}
if (Network.isClient) {
Network.Disconnect(200);
}
}
public void OnGUI()
{
if (Network.isServer) {
GUILayout.Label("Running as a server.");
}
if (Network.isClient) {
GUILayout.Label("Running as a client.");
spawnPlayer();
}
if (Network.isClient || Network.isServer) {
return;
}
if (GUI.Button (new Rect (25f, 25f, 150f, 30f), "Start New Server")) {
startServer ();
//Application.LoadLevel ("Game");
}
if (GUI.Button (new Rect (25f, 65f, 150f, 30f), "Refresh Server List")) {
StartCoroutine ("RefreshHostList");
}
if (hostData != null) {
for (int i = 0; i< hostData.Length; i++) {
if (GUI.Button (new Rect (Screen.width / 2, 65 + (30 * i), 300f, 30f), hostData [i].gameName)) {
Network.Connect(hostData[i]);
}
}
}
}
}
The Error seems to be this line here: Network.Instantiate(Resources.Load ("Prefabs/pShip"), new Vector3(0f,2.5f,0f), Quaternion.identity, 1);
Could anyone help me solve this?
Comment
Are you sure that Prefabs/pShip string is pointing to the correct object? you might need to place your objects you want to pull into the game in a resources folder so ins$$anonymous$$d of Prefabs/thing it should be Resources/thing.