コード例 #1
0
        public void SpawnEnemy(Enumerators.EnemyType enemyType)
        {
            Enemy enemy;

            switch (enemyType)
            {
            case Enumerators.EnemyType.FIRST_TYPE:
                enemy = new FirstTypeEnemy(_gameManager.LevelController.CurrentLevel.EnemySpawnPoint, _gameManager.LevelController.CurrentLevel.EnemyWaypoints, _enemiesContainer);
                break;

            case Enumerators.EnemyType.SECOND_TYPE:
                enemy = new SecondTypeEnemy(_gameManager.LevelController.CurrentLevel.EnemySpawnPoint, _gameManager.LevelController.CurrentLevel.EnemyWaypoints, _enemiesContainer);
                break;

            case Enumerators.EnemyType.THIRD_TYPE:
                enemy = new ThirdTypeEnemy(_gameManager.LevelController.CurrentLevel.EnemySpawnPoint, _gameManager.LevelController.CurrentLevel.EnemyWaypoints, _enemiesContainer);
                break;

            case Enumerators.EnemyType.FOURTH_TYPE:
                enemy = new FourthTypeEnemy(_gameManager.LevelController.CurrentLevel.EnemySpawnPoint, _gameManager.LevelController.CurrentLevel.EnemyWaypoints, _enemiesContainer);
                break;

            default:
                Debug.LogError("An enemy of this type does not exist!");
                return;
            }

            enemy.OnEnemyReachedEndOfWayEvent += OnEnemyReachedEndOfWayEventHandler;
            enemy.OnEnemyDiedEvent            += OnEnemyDiedEventHandler;
            Enemies.Add(enemy);
        }
コード例 #2
0
        public Enemy(Enumerators.EnemyType enemyType, Transform enemySpawnPoint, Transform[] wavepoints, Transform container)
        {
            _waypoints = wavepoints;

            EnemySettings enemySettings = SettingsDataUtils.GetEnemySettingsByType(enemyType);

            SetEnemyParams(enemySettings);
            SpawnEnemy(enemySettings.prefab, enemySpawnPoint, container);
            _waypointIndex  = 0;
            _targetWaypoint = _waypoints[0];
        }
コード例 #3
0
        public static EnemySettings GetEnemySettingsByType(Enumerators.EnemyType enemyType)
        {
            EnemySettings[] enemySettings = GameClient.Get <IDataManager>().GetScriptableObject <EnemySettingsData>().enemySettings;
            EnemySettings   enemyData     = enemySettings.FirstOrDefault(x => x.enemyType == enemyType);

            if (enemyData == null)
            {
                Debug.LogError("No EnemySettings for enemy with type - " + enemyType);
            }

            return(enemyData);
        }