// Start is called before the first frame update void Start() { // ゲームパラメータ初期化 Global.Init(); // 敵管理を生成 Enemy.parent = new TokenMgr <Enemy>("Enemy", 128); // ショット管理を生成 Shot.parent = new TokenMgr <Shot>("Shot", 128); // パーティクル管理を生成 Particle.parent = new TokenMgr <Particle>("Particle", 256); // タワー管理を生成 Tower.parent = new TokenMgr <Tower>("Tower", 64); // マップ管理を生成 GameObject prefab = null; prefab = Util.GetPrefab(prefab, "Field"); // インスタンス生成 Field field = Field.CreateInstance2 <Field>(prefab, 0, 0); // マップ読み込み field.Load(); // パスを取得 _path = field.Path; // コリジョンレイヤーを取得 _lCollision = field.lCollision; // GUIを生成 _gui = new Gui(); // 敵生成管理を生成 _enemyGenerator = new EnemyGenerator(_path); // Wave開始演出を取得 _waveStart = MyCanvas.Find <WaveStart>("TextWaveStart"); // カーソルを取得 _cursor = GameObject.Find("Cursor").GetComponent <Cursor>(); // 射程範囲カーソルを取得する _cursorRange = GameObject.Find("CursorRange").GetComponent <CursorRange>(); // 初期状態は選択しないモード ChangeSelMode(eSelMode.None); }
//calculate the number of enemies that need to spawn this wave private void StartWave() { int seed = wave; if (wave % 5 == 0) { enemiesToSpawn++; spawnBoss = true; seed = wave / 5; } CalculateHealthScaler(); int spawnLogorithm = seed * seed; for (int i = 0; i < seed; i++) { enemiesToSpawn++; if (seed < 13) { while (spawnLogorithm > 0) { enemiesToSpawn++; spawnLogorithm /= 2; } } } if (seed >= 13) { enemiesToSpawn += 100; while (spawnLogorithm > 0) { enemiesToSpawn++; spawnLogorithm /= 2; } } WaveStart?.Invoke(); }
private void OnWaveStart(WaveStart evt) { waveRunning = true; }
private void OnWaveStart(WaveStart evt) { NewWave(); }