/// <summary> /// MapMasterを指定して敵Viewの生成等、開始処理を行う /// </summary> public void Startup(MapMaster mapMaster, int mapLevel) { _mapMaster = mapMaster; _mapLevel = mapLevel; for (int i = 0, size = _mapMaster.InitCreateNum.GetRandomValue(); i < size; ++i) { // プールから敵を取得する var enemyControl = GetEnemyByPool(); var mapEnemyData = _mapMaster.GetRandomEnemyDataFromPopRate(); var enemyMaster = _masterHolder.EnemyRepository.Find(mapEnemyData.EnemyType); EnemyFactory.Create(this, enemyControl, enemyMaster); Models.Add(enemyControl.Model); _keyModelValueControl.Add(enemyControl.Model, enemyControl); // 削除時 var subject = new Subject <EnemyControl>(); subject.Subscribe(enemy_ => { RemoveChara(enemy_); }); enemyControl.OnDestroyed = subject; ++_enemyCount; } }