Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9529

Unityでシューティングゲームを作る(2)

$
0
0

ここまでの進捗

  • 背景がループするようにした。
  • 普通の敵の動作を作成し、その敵が3秒ごとに生成される。
  • 瞬間移動する敵の動作を作成し、5秒ごとに生成する。
  • プレイヤーが画面の範囲外に行かないようにした。
  • 敵とプレイヤーが衝突したらプレイヤーが消滅する。

今後やること

  • オープニングシーンとエンディングシーンを追加する。
  • ボスキャラの動作を実装する。
  • 分散攻撃の敵を実装する。
  • エフェクトとBGMを追加する。
  • 様々な敵の出現方法を考える。

この記事で書くのは赤文字の部分

分散攻撃の敵を実装する

敵キャラの親クラスに分散攻撃をするための関数を以下のように作った

public void NwayShot(Transform enemy,float angle) {
        Instantiate(EnemyProjectilePrefab, enemy.position, Quaternion.Euler(new Vector3(0.0f,0.0f,angle)));
    }

これのEnemyProjectilePrefabは敵が撃つ弾のPrefabで、enemy.positionは敵の位置、Quaternion.Eulerで弾の向きを設定している。
弾の向きの計算は以下のようにした

public int NwayCount = 3;//何方向に攻撃するか
public int NwayAngle = 10;//弾の角度
                    .
                    .
                    .
for(int i=1; i <= NwayCount; i++) {
                float angle = -(NwayCount + 1) * NwayAngle / 2 + i * NwayAngle;
                base.NwayShot(gameObject.transform, angle);
            }

この計算は以下のサイトを参考にさせていただきました。
計算が苦手だったので非常に助かりました。
参考:【第2回】n-way弾実装してみるよ!

これを実行すると
ezgif.com-video-to-gif.gif

ちゃんと3-Way攻撃になりました!
今後は中心の弾がプレイヤーに向けて撃たれるようにしたいです。
結構調べたりしたのでめっちゃ時間かかった(泣)
次はボスだぁー


Viewing all articles
Browse latest Browse all 9529

Trending Articles