From 352c827b5d7a92e1d6a5c0530cad6f5b9d00888c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albin=20Cor=C3=A9n?= Date: Wed, 7 Mar 2018 09:25:14 +0100 Subject: [PATCH] Added better checks to NetworkingManager --- .../MonoBehaviours/Core/NetworkingManager.cs | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs index 9461218..3e7dd18 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs @@ -10,6 +10,8 @@ namespace MLAPI { public class NetworkingManager : MonoBehaviour { + public bool DontDestroy = true; + public bool RunInBackground = true; public List SpawnablePrefabs; public GameObject DefaultPlayerPrefab; public static NetworkingManager singleton; @@ -42,15 +44,28 @@ namespace MLAPI private void OnValidate() { - for (int i = 0; i < SpawnablePrefabs.Count; i++) + if (SpawnablePrefabs != null) { - NetworkedObject netObject = SpawnablePrefabs[i].GetComponentInChildren(); + for (int i = 0; i < SpawnablePrefabs.Count; i++) + { + if (SpawnablePrefabs[i] == null) + continue; + NetworkedObject netObject = SpawnablePrefabs[i].GetComponentInChildren(); + if (netObject == null) + { + Debug.LogWarning("MLAPI: All SpawnablePrefabs need a NetworkedObject component. Please add one to the prefab " + SpawnablePrefabs[i].gameObject.name); + continue; + } + netObject.SpawnablePrefabIndex = i; + } + } + if (DefaultPlayerPrefab != null) + { + NetworkedObject netObject = DefaultPlayerPrefab.GetComponentInChildren(); if (netObject == null) { - Debug.LogWarning("MLAPI: All SpawnablePrefabs need a NetworkedObject component. Please add one to the prefab " + SpawnablePrefabs[i].gameObject.name); - continue; + Debug.LogWarning("MLAPI: The player object needs a NetworkedObject component."); } - netObject.SpawnablePrefabIndex = i; } } @@ -250,7 +265,10 @@ namespace MLAPI return; } singleton = this; - DontDestroyOnLoad(gameObject); + if (DontDestroy) + DontDestroyOnLoad(gameObject); + if (RunInBackground) + Application.runInBackground = true; } private void OnDestroy()