連射

空白キーで弾丸(Ball)を連射します。
  1. Shot では弾丸は一発だけでしたが、スペースキーで弾丸を連射します。
    Unity を起動して Project を生成します。
    メニューから[Save Scene]を選び Main の名前で保存します。
  2. [GameObject][3D Object]から Sphere を追加して名前を Ball に変更します。
    右三角(再生ボタン)で Ball の描画を確認して下さい。
  3. [Projectタブ][Createタブ]から[C# Script]を選択して NewBehaviourScript.cs を作成します。
    Update() 関数で弾丸を移動する Script をコーデイングします。
    Vector3(0.3f, 0.01f, 0.1f) が弾丸の移動方向(X,Y,Z)です。
    Ball にアタッチして再生ボタンで Ball が右上奥に向かって発射されることを確認して下さい。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class NewBehaviourScript : MonoBehaviour {
    
        void Update () {
            transform.Translate(new Vector3(0.3f, 0.01f, 0.1f));
        }
    }
    
  4. ヒエラルキービューの Ball をプロジェクトパネル(Assets)にドラッグして移動します。
    ヒエラルキービューの元の Ball は右クリックから削除して下さい。
  5. [GameObject][Create Empty] から空のオブジェクトを作成して、名前を BallBox に変更します。
    前回はヒエラルキービューの Ball に Script をアタッチしたのですが、今回は空のオブジェクトにアタッチして Ball を発射します。
  6. [Projectタブ][Createタブ]から[C# Script]を選択して名前を BallBoxScript.cs に変更します。
    class の名前は、ファイル名(BallBoxScript.cs)に合わせて下さい。
    スペースキーで弾丸を連射するプログラムです。
    Instantiate() で Ball を発射します。
    public GameObject ball; には、次の項で説明するように BallBox の Inspector から Ball を設定します。
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class BallBoxScript : MonoBehaviour
    {
        public GameObject ball;
        void Update()
        {
            if (Input.GetButtonUp("Jump"))
            {
                Instantiate(ball, transform.position, Quaternion.identity);
            }
        }
    }
    
  7. BallBoxScript.js を BallBox にアタッチして下さい。
    画面右の Ball Box Script の Ball に Assets の Ball をドラッグして設定して下さい。
    Ball は BallBoxScript.cs で public 宣言されています。

  8. 再生ボタンで実行すると、空白キーで弾丸(ボール)が連射されます。
    2Dの連射は 2D連射 を参照して下さい。
  9. 弾丸を一列に並べて発射してみましょう。
    BallBoxScript.cs を次のように修正して下さい。
    5発の弾丸が縦に並んで発射されます。
        if (Input.GetButtonUp("Jump"))
            {   for (int i=0; i<5; i++)
                    Instantiate(ball, new Vector3(0, i*2.0f-5.0f, 0), Quaternion.identity);
            }
    

[Previous Chapter ↑] Shot

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Unity)