bool IsValidKeyInView(ParallaxLayer layer)
        {
            var camBounds = _viewBoundary.GetBounds();
            var bounds    = layer.GetBounds();

            switch (_repeat)
            {
            case LayerRepeatType.XAxis:
                var vertYMin = WorldToAxisKey(bounds, new Vector2(camBounds.center.x, camBounds.min.y));
                var vertYMax = WorldToAxisKey(bounds, new Vector2(camBounds.center.x, camBounds.max.y));

                return(vertYMin.y <= Y_ORIGIN && vertYMax.y >= Y_ORIGIN);

            case LayerRepeatType.YAxis:
                var vertXMin = WorldToAxisKey(bounds, new Vector2(camBounds.min.x, camBounds.center.y));
                var vertXMax = WorldToAxisKey(bounds, new Vector2(camBounds.max.x, camBounds.center.y));

                return(vertXMin.x <= X_ORIGIN && vertXMax.x >= X_ORIGIN);

            case LayerRepeatType.Both:
                return(true);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }