private GameObject CreateObject(GameObject prefab) { GameObject newObj = Object.Instantiate(prefab); ProjectileBase projectileBase = newObj.GetComponent <ProjectileBase>(); if (projectileBase == null) { const string errorMsg = "The pooled projectile object doesn't have a projectile base script attached!"; Logger.Error(errorMsg); throw new NullReferenceException(errorMsg); } projectileBase.SetupPool(this); NetworkServer.Spawn(newObj); return(newObj); }