//ショット切り替えボタン押下時の処理
    public void shotChangerOnClick(int argBtnNum)
    {
        // ボタンの色を変更
        changeColor(argBtnNum);

        // 押されたボタンの弾に切り替える
        List <KeyValuePair <string, int> > sPair = new List <KeyValuePair <string, int> >(shotList);

        foreach (var item in sPair)
        {
            if (item.Value == argBtnNum)
            {
                if (item.Key == "shot1")
                {
                    shotTypeObj.setShotType(1);
                    shotTypeObj.setPlayerShotDelay(1);
                }
                else if (item.Key == "shot2")
                {
                    shotTypeObj.setShotType(2);
                    shotTypeObj.setPlayerShotDelay(2);
                }
                else if (item.Key == "shot3")
                {
                    shotTypeObj.setShotType(3);
                    shotTypeObj.setPlayerShotDelay(3);
                }
                else if (item.Key == "shot4")
                {
                    shotTypeObj.setShotType(4);
                    shotTypeObj.setPlayerShotDelay(4);
                }
                else
                {
                    shotTypeObj.setShotType(1);
                    shotTypeObj.setPlayerShotDelay(1);
                }
            }
        }
    }
Пример #2
0
    // ぶつかった瞬間に呼び出される cはぶつかってきた物体のコライダ
    // 敵ならばダメージ アイテムならば取得処理を記載
    void OnTriggerEnter2D(Collider2D c)
    {
        if (managerObj != null && managerObj.IsGamePause() != true)
        {
            // レイヤー名を取得
            string layerName = LayerMask.LayerToName(c.gameObject.layer);

            // レイヤー名がBullet(Enemy)の時は弾を削除
            if (layerName == "Bullet(Enemy)")
            {
                // エネミーの弾の削除。実際には非アクティブにする
                //Destroy(c.gameObject);
                ObjectPool.instance.shootingGamePool(c.gameObject);
            }

            // レイヤー名がBullet(Enemy)またはEnemy,Boss1の場合は damage
            if (layerName == "Bullet(Enemy)" || layerName == "Enemy" || layerName == "Boss1")
            {
                spaceship.GetAnimator().SetTrigger("Damage");

                playerlife.damagePlayerHp();

                spaceship.Explosion();

                //Game Over
                if (playerlife.getPlayerHp() <= 0)
                {
                    // Manager GameOverメソッドを呼び出す
                    managerObj.GameOver();

                    // 爆発する
                    spaceship.Explosion();

                    //オプションを削除
                    followerMng.destroyOldFollowers();

                    //ゲームを停止
                    managerObj.isPause = true;

                    // プレイヤーを削除
                    Destroy(gameObject);
                }
            }

            // ショット切り替えアイテムの取得時の処理
            int nextShotType = 0;
            if (layerName == "ItemN")
            {
                nextShotType = 1;
            }
            else if (layerName == "ItemE")
            {
                nextShotType = 2;
            }
            else if (layerName == "ItemL")
            {
                nextShotType = 3;
            }
            else if (layerName == "ItemM")
            {
                nextShotType = 4;
            }
            if (nextShotType != 0)
            {
                shotTypeObj.setShotType(nextShotType);
                shotTypeObj.setPlayerShotDelay(nextShotType);
                shotChangerObj.changeShot(nextShotType);
                Destroy(c.gameObject);
            }

            // オプション取得時の処理
            if (layerName == "ItemOpt")
            {
                if (followerMng.IsFollowerMax() == false)
                {
                    FindObjectOfType <BombManager>().increaseBombNum();                    //ボムの数を加算
                    GameObject prefab = (GameObject)Resources.Load("followers");
                    Instantiate(prefab, transform.position, Quaternion.identity);
                }
                Destroy(c.gameObject);
            }

            // バリア取得時の処理
            if (layerName == "ItemBarrier")
            {
                GameObject.Find("ItemBarrier").renderer.enabled = true;
                Destroy(c.gameObject);
            }

            // スペシャル弾の取得時の処理
            if (layerName == "ItemSuperShot")
            {
                GameObject.Find("ItemSuperShot").renderer.enabled = true;
                superShot.superShotFlg = 1;
                Destroy(c.gameObject);
            }
        }
    }