Пример #1
0
    // 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();
 }