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