コード例 #1
0
        public void OnReset()
        {
            _totalFoodCount.Save();
            EventManager.Unsubscribe <SpawnLevelElementEvent>(OnSpawnLevelElement);
            EventManager.Unsubscribe <FoodCollectEvent>(OnFoodCollect);

            _totalFoodCount = null;
            _foods          = null;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }