エッセイマンガ!オタクビアンカップル同棲日記「よめよめ」

同棲中のレズビアンカップルのゆんとあゆむが、日々の生活の様子をマンガや日記にしてお届けするブログです

Unityで3Dの動く敵を弾丸で倒せるようにする方法!

Unityで3Dの動く敵を弾丸で倒すイメージ

今日はUnityゲーム制作講座、第十弾です!

もう十回かぁ。早いもんじゃのう~

だねぇ。まぁ、十回の大台なので、今日はいよいよ敵を倒せるようにしていくよ~

Unityで3Dの動く敵を弾丸で倒せるようにする方法

敵用のGameObjectを配置

Unityで3Dの動く敵を弾丸で倒せるようにするには、動けるキャラと、弾丸、そして敵用のGameObjectが必要です。

敵用のGameObjectはAssetStoreから適当な素材をDLしてSceneに追加しましょう。

Unityで3DObjectをSceneに配置するイメージ

 

GameObjectのサイズが小さ過ぎたり、大き過ぎたりする場合は、TransformのScaleを調整しましょう。丁度いい大きさになったら前準備は完了です。

 

この記事から読み始めた方は、以前の記事を参考に、必要な準備をしてから続きに進んでください。 

 

敵用Scriptを作成

Scriptsフォルダに新しいScriptを作成します。名称はEnemyManagerとしておきましょう。Scriptを作成したら以下を追加し、保存します。保存したら、敵用のGameObjectを選択し、InspectorウインドウにEnemyManagerScriptをドラッグアンドドロップで貼り付けましょう。

f:id:aaafrog:20211212181206p:plain

 

敵用GameObjectに、RigidbodyとColliderをつける

弾丸で倒せるようにするためには、当たり判定が必要なので、AddComponentで、敵用GameObjectに、RigidbodyとColliderをつけます

ここではCapsuleColliderを使っていますが、GameObjectの形状によってはBoxの方がいいかもしれないので、ImportしたGameObjectに合ったものを使って下さい。

Rigidbodyのイメージ

Colliderのイメージ

 

弾丸にTagをつける

敵用GameObjectの当たり判定で、弾丸とそれ以外の地面とかを区別したいので、Prefabsフォルダに格納している、BulletのPrefabのInspectorのTagに新しいTagを追加しましょう。名前はわかりやすいようにBulletとしておきます。

新しいTagを追加するイメージ

 

作成したBulletを選択してTagを指定しましょう

作成したTagを選択するイメージ

 

左右移動と弾丸に当たったときのコードを作成

Scriptsフォルダに新規のScriptを作成し、名前をEnemyManagerにして、以下のコードを貼り付けて保存します。

    private float speed = 0.05f; // 速度
    private int count = 0; // 

    // Update is called once per frame
    void Update()
    {
        //Debug.Log(count);
        count += 1;

        if (count < 500)
        {
            transform.position += transform.right * speed;
        }
        else if(count > 500)
        {
            transform.position += transform.right * speed * -1;
        }

        if (count == 1000)
        {
            count = 0;
        }
    }

    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.CompareTag("Bullet"))
        {
            Debug.Log("BulletCollision");
            Destroy(this.gameObject);
        }
    }

追加したScriptに以下を追加し、保存します。

 

動作確認を行う

これで敵の動きと、弾丸が当たったときの処理ができているはずなので、ゲームを再生し、想定通りの動作になっているかを確認しましょう。

イメージどおりに動いてくれていれば完了です。

 

動画も作成しているので、細かい解説などはこちらから確認してください。

 

敵を倒せるようになると、ゲームって感じになるね~

あとはスコアとか画面の遷移ができるようになれば、簡単なアクションゲームは作れる感じになると思う。頑張っていきましょう~