예제 #1
0
    private void SpawnAstetoid(Vector2 spawnPosition, Vector2 movePosition, AsteroidsType asteroidsType)
    {
        var asteroid     = PoolManager.SpawnObject(_asteroidsView[asteroidsType].gameObject, spawnPosition, Quaternion.identity);
        var asteroidView = asteroid.GetComponent <AsteroidView>();

        asteroidView.Init(_asteroidModel, movePosition, _destructionAsteroidView, asteroidsType, InitSmallAsteroids);
    }
예제 #2
0
 public void Init(AsteroidModel asteroidModel, Vector2 movePosition, DestructionAsteroidView destructionAsteroidView,
                  AsteroidsType asteroidsType, Action <Transform, AsteroidsType> spawnSmallAsteroid)
 {
     _speed                   = UnityEngine.Random.Range(-asteroidModel.ForceRange, asteroidModel.ForceRange) + asteroidModel.MiddleForce;
     _movePosition            = movePosition;
     _destructionAsteroidView = destructionAsteroidView;
     _asteroidType            = asteroidsType;
     _spawnSmallAsteroid      = spawnSmallAsteroid;
 }
예제 #3
0
    public void InitSmallAsteroids(Transform startPosition, AsteroidsType typeAsteroid)
    {
        int asteroidsCount = UnityEngine.Random.Range(0, _spawnerModel.MaxSmallAsteroidsCount + 1);

        for (int i = 0; i < asteroidsCount; i++)
        {
            int zoneNumber    = UnityEngine.Random.Range(0, 4);
            var spawnPosition = _spawnZonesPosition[zoneNumber].Invoke();

            SpawnAstetoid(startPosition.position, spawnPosition, typeAsteroid);
        }
    }