0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-12-18

##ここまでの進捗

  • 背景がループするようにした。
  • 普通の敵の動作を作成し、その敵が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攻撃になった!
今後は中心の弾がプレイヤーに向けて撃たれるようにしたい。
結構調べたりしたのでめっちゃ時間かかった(泣)
次はボスだぁー

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?