i very new to unity networking api and not sure as to why i keep getting the errors. am i missing something somewhere or not?
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class networkManager : MonoBehaviour
{
public Rect hostButton = new Rect (10, 20, 40, 30);
public Rect refreshButton = new Rect (10, 30, 40, 30);
[SerializeField]
string
registeredGameName = “my Game”;
public string gameName = “test”;
public Text connectionText;
public InputField nameTextBlock;
[SerializeField]
GameObject
serverWindow;
public GameObject spawnButton;
public Text gameNameTextBlock;
bool isRefreshing = false;
public float refreshRequestLength = 3.0f;
HostData[ ] hostData;
[SerializeField]
GameObject
playerObject;
public GameObject sceneCamera;
void Start ()
{
gameName = PlayerPrefs.GetString (“gameName”);
gameNameTextBlock.text = gameName;
StartCoroutine (“RefreshHostList”);
spawnButton.SetActive (false);
}
void Update ()
{
//registeredGameName = servernameTextBlock.text;
gameName = nameTextBlock.text;
//serverNameTextBlock.text = registeredGameName;
gameNameTextBlock.text = gameName;
}
public void StartServer ()
{
Network.InitializeServer (16, 25002, false);
MasterServer.RegisterHost (registeredGameName, gameName);
PlayerPrefs.SetString (“gameName”, gameName);
serverHostWindow ();
}
void OnServerInitialized ()
{
Debug.Log (“Server initialized and ready”);
connectionText.text = “Server initialized and ready”;
Network.Instantiate (playerObject, new Vector3 (0, 3.5f, 0), Quaternion.identity, 0);
sceneCamera.SetActive (false);
}
void OnMasterServerEvent (MasterServerEvent masterServerEvent)
{
if (masterServerEvent == MasterServerEvent.RegistrationSucceeded) {
connectionText.text = “registration succesfull”;
}
}
public IEnumerator RefreshHostList ()
{
connectionText.text = “Refreshing”;
float timeStarted = Time.time;
float timeEnd = Time.time + refreshRequestLength;
MasterServer.RequestHostList (registeredGameName);
while (Time.time < timeEnd) {
hostData = MasterServer.PollHostList ();
yield return new WaitForEndOfFrame ();
}
if (hostData == null || hostData.Length == 0) {
connectionText.text = " no servers found";
} else {
connectionText.text = "servers found: " + hostData.Length;
}
}
public void serverRefresh ()
{
StartCoroutine (“RefreshHostList”);
}
void serverHostWindow ()
{
serverWindow.SetActive (false);
}
public void spawnPlayer ()
{
//connectionText.text = “spawning player”;
Debug.Log (“spawning player”);
Network.Instantiate (Resources.Load (“Resources/FirstPersonCharacterController”), new Vector3 (0, 2.5f, 0), Quaternion.identity, 0);
}
// Called on the server whenever a new
// player has successfully connected.
void OnPlayerConnected (NetworkPlayer player)
{
spawnPlayer ();
sceneCamera.SetActive (false);
}
// Called on the client when you have successfully
// connected to a server.
void OnConnectedToServer ()
{
connectionText.text = “connected”;
Debug.Log (“connected”);
spawnPlayer ();
}
// Called on the server whenever a player
// disconnected from the server.
void OnPlayerDisconnected (NetworkPlayer player)
{
Debug.Log ("player disconnected: " + player.ipAddress + player.port);
Network.RemoveRPCs (player);
Network.DestroyPlayerObjects (player);
}
// Called on the client when the connection
// was lost or you disconnected from the
// server.
void OnDisconnectedFromServer (NetworkDisconnection info)
{
Network.Disconnect ();
serverWindow.SetActive (true);
sceneCamera.SetActive (true);
}
// Called on the client when a connection
// attempt fails for some reason.
void OnFailedToConnect (NetworkConnectionError error)
{
Debug.Log (“connection failed”);
Network.Disconnect ();
connectionText.text = “failed to connect”;
}
// Called on objects which have been network
// instantiated with Network.Instantiate
void OnNetworkInstantiate (NetworkMessageInfo info)
{
}
void OnGUI ()
{
if (Network.isClient || Network.isServer)
return;
/*
if (GUI.Button (hostButton, “host”)) {
StartServer ();
PlayerPrefs.SetString (“gameName”, gameName);
serverHostWindow ();
}
if (GUI.Button (refreshButton, “refresh”)) {
StartCoroutine (“RefreshHostList”);
}
if (GUI.Button (new Rect (20, 0, 120, 20), “save settings”)) {
PlayerPrefs.Save ();
}
/
if (hostData != null) {
for (int i = 0; i < hostData.Length; i++) {
if (GUI.Button (new Rect (Screen.width / 2, 65f + (30f + i), 120, 25), hostData .gameName)) {
Network.Connect (hostData );
serverHostWindow ();
spawnButton.SetActive (true);
_}_
_}_
_}_
_}*_
}
console output:
NullReferenceException
UnityEngine.Network.Instantiate (UnityEngine.Object prefab, Vector3 position, Quaternion rotation, Int32 group) (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/Networking.cs:628)
networkManager.spawnPlayer () (at Assets/scripts/networkManager.cs:108)
UnityEngine.Events.InvokableCall.Invoke (System.Object[ ] args) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:110)
UnityEngine.Events.InvokableCallList.Invoke (System.Object[ ] parameters) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:575)
UnityEngine.Events.UnityEventBase.Invoke (System.Object[ ] parameters) (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent.cs:717)
UnityEngine.Events.UnityEvent.Invoke () (at C:/BuildAgent/work/d63dfc6385190b60/Runtime/Export/UnityEvent_0.cs:53)
UnityEngine.UI.Button.Press () (at C:/BuildAgent/work/d63dfc6385190b60/Extensions/guisystem/guisystem/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/BuildAgent/work/d63dfc6385190b60/Extensions/guisystem/guisystem/UI/Core/Button.cs:45)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/BuildAgent/work/d63dfc6385190b60/Extensions/guisystem/guisystem/EventSystem/ExecuteEvents.cs:52)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/BuildAgent/work/d63dfc6385190b60/Extensions/guisystem/guisystem/EventSystem/ExecuteEvents.cs:269)
UnityEngine.EventSystems.EventSystem:Update()