public void OnReset() { _totalFoodCount.Save(); EventManager.Unsubscribe <SpawnLevelElementEvent>(OnSpawnLevelElement); EventManager.Unsubscribe <FoodCollectEvent>(OnFoodCollect); _totalFoodCount = null; _foods = null; }
public void OnInit() { _totalFoodCount = new SaveableField <int>("FoodCount", true); _totalFoodCount.Load(); _foods = LevelConfigController.Config.Foods; CurrentFoodCount = 0; _spawnCountFoods = 0; _targetFoodCount = LevelConfigController.Config.GetFoodsCount(LevelController.CurrentLevel.Level); EventManager.Subscribe <SpawnLevelElementEvent>(this, OnSpawnLevelElement); EventManager.Subscribe <FoodCollectEvent>(this, OnFoodCollect); }
public int SpawnFoods(FoodsContainer foods) { if (!foods) { return(0); } var randomizePoints = _foodPoints.Randomize(); var elemBounds = Bounds; var count = 0; foreach (var point in randomizePoints) { var canSpawn = Random.Range(0, 2) > 0; if (!canSpawn) { continue; } var foodPrefab = foods.GetRandomObject(false); if (!foodPrefab) { continue; } var food = Instantiate(foodPrefab, transform); var foodTransform = food.transform; foodTransform.rotation = Quaternion.identity; var pos = point.position; pos.y = elemBounds.center.y + elemBounds.extents.y + food.Bounds.extents.y; var posDelta = pos - foodTransform.position; foodTransform.position = pos; count++; } return(count); }