/// <summary> /// When disabled, stop spawning objects /// </summary> private void OnDisable() { m_IsSpawningObjects = false; if (NetworkManager.Singleton && EnableHandler && m_MyCustomPrefabSpawnHandler != null) { var no = ServerObjectToPool.GetComponent <NetworkObject>(); NetworkManager.Singleton.PrefabHandler.RemoveHandler(no); m_MyCustomPrefabSpawnHandler = null; } }
/// <summary> /// Handles registering the custom prefab handler /// </summary> private void RegisterCustomPrefabHandler() { // Register the custom spawn handler? if (m_MyCustomPrefabSpawnHandler == null && EnableHandler) { if (NetworkManager && NetworkManager.PrefabHandler != null) { m_MyCustomPrefabSpawnHandler = new MyCustomPrefabSpawnHandler(this); if (RegisterUsingNetworkObject) { NetworkManager.PrefabHandler.AddHandler(ServerObjectToPool.GetComponent <NetworkObject>(), m_MyCustomPrefabSpawnHandler); } else { NetworkManager.PrefabHandler.AddHandler(ServerObjectToPool, m_MyCustomPrefabSpawnHandler); } } else if (!IsServer) { Debug.LogWarning($"Failed to register custom spawn handler and {nameof(EnableHandler)} is set to true!"); } } }