示例#1
0
    //This script is called by the individual enemies as they are destroyed.
    public void HandleEnemyDestroyed()

    {
        foreach (Transform child in transform)

        {
            EnemyRowController row = child.gameObject.GetComponent <EnemyRowController>();

            row.remainingEnemies--;
        }



        //remainingEnemies.Remove(theEnemyThatWasDestroyed);

        //Debug.Log("Now there are " + remainingEnemies.Count + " enemies in the list.");

        //if (remainingEnemies.Count <= 0)

        //{

        //    //youWinText.enabled = true;

        //}
    }
示例#2
0
    /// <summary>
    /// Enemyの生成
    /// </summary>
    private void Create()
    {
        //生成したenemyをしまう親オブジェクトを設定
        enemyParent = new GameObject("Enemys").transform;

        rowAliveEnemyNum = rowAliveEnemyNum.Select(i => enemyWidthNum).ToArray();        //全要素にenemyの1行に設置する数を代入する
        //全ての列のidをListに追加
        for (int i = 0; i < enemyWidthNum; i++)
        {
            columnEnemyAliveCash.Add(i);
        }

        //行ごとにContollerを作成
        enemyRows = new EnemyRowController[enemyHeightNum];
        for (int i = 0; i < enemyHeightNum; i++)
        {
            //行に関するControllerの作成
            int                lineNumber = i + 1;
            string             rowControllerPrefabName = "Enemy" + lineNumber + "RowController";
            GameObject         column     = new GameObject(rowControllerPrefabName); //行のControllerとなるオブジェクトを生成
            EnemyRowController controller = column.AddComponent <EnemyRowController>();
            enemyRows[i] = controller;

            column.transform.parent = transform;

            //列に対して与える情報を設定
            EnemyRowCreateInfo rowInfo = new EnemyRowCreateInfo();
            rowInfo.rowId              = i;
            rowInfo.rowInfo            = FindEnemyInfo(i);
            rowInfo.enemyHeightNum     = enemyHeightNum;
            rowInfo.enemyWidthNum      = enemyWidthNum;
            rowInfo.startUpStageId     = stageNum - 1;    //TODO ステージ数によって変化させる
            rowInfo.enemyWidthInterval = enemyWidthInterval;
            rowInfo.stageNum           = stageNum;
            rowInfo.enemyMinPos        = new Vector3(minPos.x, minPos.y + enemyBottomPosYDiff, 0);
            rowInfo.enemyMaxPos        = new Vector3(maxPos.x, maxPos.y - enemyTopPosYDiff, 0);

            controller.Create(rowInfo, enemyParent, onAddScore, (id) =>
            {
                rowAliveEnemyNum[id]--;
                if (rowAliveEnemyNum.Sum() == 0)        //敵が全員死んだ時
                {
                    onDeathAll();
                }

                if (rowAliveEnemyNum[id] == 0)        //idの行のEnemyが全滅した時
                {
                    // TODO
                }
            });
        }
    }