private void Spawn()
    {
        AsteroidHelper.Stages stage = (AsteroidHelper.Stages)Random.Range(0, Enum.GetNames(typeof(AsteroidHelper.Stages)).Length);
        int        type             = Random.Range(0, AsteroidHelper.AsteroidTypesCount);
        GameObject asteroid         = Instantiate(ResourcesLoader.GetAsteroid(stage, type), GetRandomSpawnPosition(), Quaternion.identity);

        if (GameState.IsActive())
        {
            Invoke(nameof(Spawn), _spawnInterval);
        }
    }
    public static GameObject GetAsteroid(AsteroidHelper.Stages stage, int type)
    {
        var obj = _asteroids[(int)stage][type];

        if (obj == null)
        {
            string stageName = stage.ToString().ToLower();
            obj = Resources.Load <GameObject>("Asteroids/asteroid_" + stageName + "_" + (type + 1));
            _asteroids[(int)stage][type] = obj;
        }
        return(obj);
    }