/// <summary> /// Spawnerを初期化 /// </summary> /// <param name="amount">量</param> private void GenerateSpawner(int amount) { for (int i = 0; i < amount; i++) { Vector3 randomSpace = map.RandomSpace(); if (randomSpace == Vector3.Zero) //Error対策 { break; } EnemySetting setting = gameManager.EnemySetting.RandomSpawnerSetting(); if (setting.ids.Length > 1) //配列の場合 { Spawner spawner = new Spawner( setting.rate, randomSpace, setting.ids, setting.max, setting.amountPerSpawn, characterManager); spawner.InitCurrentTime(); characterManager.AddSpawner(spawner); } else { Spawner spawner = new Spawner( setting.rate, randomSpace, setting.ids[0], setting.max, setting.amountPerSpawn, characterManager); spawner.InitCurrentTime(); characterManager.AddSpawner(spawner); } } }
public EnemyModel(EnemySetting enemySetting) { AttackSpeed = enemySetting.AttackSpeed; MovementSpeedRange = enemySetting.MovementSpeedRange; Health = enemySetting.Health; AttackValue = enemySetting.AttackValue; ExpForKill = enemySetting.ExpForKill; }
// =========================== // Private Function // =========================== private void Spawn() { int randomIndex = Random.Range(0, enemySettingList.Count); EnemySetting setting = enemySettingList[randomIndex]; //GameObject enemy = ObjectPooler.Instance.SpawnFormPool(setting.enemyTag, GetSpawnPosition(), Quaternion.identity); ObjectPooler.Instance.SpawnFormPool(setting.enemyTag, GetSpawnPosition(), Quaternion.identity); float randomTime = Random.Range(minSpawnSpacingTime, maxSapwnSpacingTime); Invoke("Spawn", randomTime); }
/// <summary> /// 配置よりボスを生成 /// </summary> private void GeneratBoss() { EnemySetting setting = gameManager.EnemySetting.BossSetting; for (int i = 0; i < setting.ids.Length; i++) { int id = setting.ids[i]; if (id < 0) { continue; } Vector3 bossPosition = map.BossPoint(i); characterManager.AddCharacterBossScene(characterManager.Enemys()[id].Clone(bossPosition)); } }
public void InitCurrentLevel(int level) { ClearLevel(); CurrentGameLevel = level; DefenderSetting defenderSetting = Resources.Load <DefenderSetting>("DefenderSetting"); DefenderViewFactory defenderViewFactory = new DefenderViewFactory(defSpawnPoints); DefenderViewUi[] defenderViewUiList = FindObjectsOfType <DefenderViewUi>(); FortView fortView = FindObjectOfType <FortView>(); fortView.OnKill += OnKillEnemy; for (int i = 0; i < defenderViewFactory.Views.Count; i++) { objectsToClear.Add(defenderViewFactory.Views[i].gameObject); defenderControllers.Add(new DefenderController(defenderViewFactory.Views[i], new DefenderModel(defenderSetting), defenderViewUiList[i])); defenderViewFactory.Views[i].OnKill += OnKillEnemy; } EnemySetting enemySettings = Resources.Load <EnemySetting>("EnemySetting"); EnemyViewFactory EnemyViewFactory = new EnemyViewFactory(LevelModels[CurrentGameLevel].EnemiesOnLevelCount, enemySpot); LevelModels[CurrentGameLevel].InitCurrentLevel(enemySettings.ExpForKill, LevelClearedGameOver); if (fortController != null) { fortController.Init(FindObjectOfType <FortView>(), FindObjectOfType <FortViewUi>(), LevelModels[CurrentGameLevel]); } else { FortController.OnFortDestroyed += LevelLossGameOver; fortController = new FortController(fortView, FindObjectOfType <FortViewUi>(), LevelModels[CurrentGameLevel]); } foreach (var view in EnemyViewFactory.Views) { objectsToClear.Add(view.gameObject); EnemyController enemyController = new EnemyController(view, new EnemyModel(enemySettings)); foreach (var defender in defenderControllers) { enemyController.OnDie += defender.OnTargetDieHandler; } enemyControllers.Add(enemyController); } }
public DepthMove(EnemySetting setting, Transform transform) : base(setting, transform) { }
public VerticalMove(EnemySetting setting, Transform transform) : base(setting, transform) { }
public HorizontalMove(EnemySetting setting, Transform transform) : base(setting, transform) { }
public EnemyMove(EnemySetting setting, Transform transform) { m_Setting = setting; myTramsform = transform; }