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);
        }