/// <summary> /// Builds up the cache for a prefab. /// </summary> private void RegisterPrefabInternal(GameObject prefab, int prewarmCount) { var networkObject = prefab.GetComponent <NetworkObject>(); var prefabHash = networkObject.PrefabHash; prefabs[prefabHash] = prefab; var prefabQueue = new Queue <NetworkObject>(); pooledObjects[prefabHash] = prefabQueue; for (int i = 0; i < prewarmCount; i++) { var go = CreateInstance(prefabHash); ReturnNetworkObject(go.GetComponent <NetworkObject>()); } // Register MLAPI Spawn handlers NetworkSpawnManager.RegisterDestroyHandler(prefabHash, ReturnNetworkObject); NetworkSpawnManager.RegisterSpawnHandler(prefabHash, (position, rotation) => GetNetworkObjectInternal(prefabHash, position, rotation)); }