float ComputeCenteredHorizontalOffset()
        {
            Vector3 centerLocation = map.GetCurrentMapLocation();
            Vector2 uv             = Conversion.GetUVFromSpherePoint(centerLocation);

            return(uv.x);
        }
        /// <summary>
        /// Creates a simple gameobject (sphere) on current map position and launch it over a random position on the globe following an arc
        /// </summary>
        void FireBullet()
        {
            // Create a "bullet" with a simple sphere at current map position from camera perspective
            GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);

            sphere.GetComponent <Renderer>().material.color = Color.yellow;

            // Choose starting pos
            Vector3 startPos = map.GetCurrentMapLocation();

            // Get a random target city
            int     randomCity = Random.Range(0, map.cities.Count);
            Vector3 endPos     = map.cities[randomCity].unitySphereLocation;

            // Fire the bullet!
            StartCoroutine(AnimateBullet(sphere, 0.01f, startPos, endPos));
        }