アイテム処理を追加する

アイテム処理 を付ける

今日は、2D弾幕ゲームを制作しています。
エネミーを倒すとアイテムを落とします。
このアイテムをプレイヤーが取得した時の処理をまとめました。


プレイヤー側のアイテム処理

まずはプレイヤーオブジェクト側から追加していきます。
プレイヤーでは、アイテムとプレイヤーが衝突したらOnTriggerEnter2Dが呼び出されます。
※プレイヤーオブジェクト、アイテムオブジェクトには予めコライダーとRigidBody2Dをアタッチしてください。

private void OnTriggerEnter2D(Collider2D other)
    {
        if(other.gameObject.CompareTag("Item1"))
        {
            StartCoroutine(BulletAttack());
            collisionSound.PlayOneShot(atacckSE);
            Destroy(other.gameObject); 
        }
        else if(other.gameObject.CompareTag("Item2"))
        {
            if(player.playerHp < player.playerMaxHp -10){
                player.playerHp += 10;
                player.HpSlider();
                collisionSound.PlayOneShot(healingSE);
            }
            Destroy(other.gameObject); 
        }
        else if(other.gameObject.CompareTag("Item3"))
        {
            StartCoroutine(PoisonHp());
            collisionSound.PlayOneShot(poisonSE);
            Destroy(other.gameObject); 
        }
        else if(other.gameObject.CompareTag("Item4"))
        {
            StartCoroutine(BulletSpeed());
            collisionSound.PlayOneShot(atacckSE);
            Destroy(other.gameObject); 
        }
        else if(other.gameObject.CompareTag("Coin"))
        {
            player.coinCount ++;
            collisionSound.PlayOneShot(coinSE);
            Destroy(other.gameObject); 
        }
    }

タグによるアイテム処理

上記コードでは触れたオブジェクトにタグ設定がされています。
タグをつけることで、タグにより判別することが出来ます。
Item1~Item4は取得すると攻撃速度が上がったり、体力が回復したりします。

Item1は、プレイヤーの攻撃力を上昇します。
2は、プレイヤーのHPを10回復します。
3は、プレイヤーを毒状態にします。逆に取ってはいけないアイテムとして作成しました。
毒状態になると0.1秒毎にHPが減っていきます。-10~-20の範囲でHPが減ります。
4は、攻撃スピードを1.5倍上昇させます。

攻撃力上昇、スピード上昇については2秒間だけ上昇します。永続的だとゲーム性が下がると思うので、そういう風に設定しました。
その為にStartCoroutine()を使用しています。

タグCoinがついているオブジェクトに触れると、コインのカウント変数がインクリメントされます。


その他

取得した際にユーザーエクスペリメントを上げるためにサウンドも追加しました。
サウンドを追加することもゲーム制作では重要です。

Destroy(消したいオブジェクト名)を使用すると、Scene上からオブジェクトが完全に削除されます。

タグ判定を使用することでコードも見やすくなるし、いろいろと便利なので、是非使ってみてください!
判定処理用のScriptを別途で作成し、オブジェクトにアタッチすることで修正も楽になります。