前回はステージ作りとキャラクター操作を解説しました。今回は操作キャラクターに銃を装備させて弾丸を発射させるようにしていきます。
弾丸はマウスの左クリックで発射されるようにし、発射されるとだんだん落ちていくようにしています。
目次
銃から弾丸を発射させる
銃のアセット
今回の内容では銃のオブジェクトが必須です。かといって自分で銃を作るのは大変ですね。
なのでアセットストアを使っていきます。
アセットストアは他の人が作ったモデルなどをダウンロードして使うことができるストアです。
お金を払えば完成されたゲームをダウンロードもできますが、ここでは無料の物を使っていきます。
上の項目からウィンドウをクリックし(画像1番目の赤丸)、その中にある「アセットストア」をクリックします(画像2番目の赤丸)。
するとアセットストアが開きます。
銃のモデルはたくさんありますが、ここでは「M9」というアセットを使っていきます。
少し上に検索欄があるので「M9」と検索し(画像1番目の赤丸)、「Sort by」という項目をクリックして(画像2番目の赤丸)、その中にある「Price(Low to High)」をクリックします(画像3番目の赤丸)。
これをすることで値段の安いものから表示されます。
すると画像赤丸と同じアセットがあると思うのでそれをダウンロードしてください。
こちらからアセットのページに飛べます。
初めてダウンロードするので画像と表示されている文字が違うと思いますが、右側の水色のボタンをクリックします。
すると以下のような画面が開かれるので、右下の「Accept」をクリックします。
次に表示される画面では「Open in Unity」をクリックします。
次にUnity上で以下の画面が表示されるので左側で先ほどダウンロードしたアセットが選択されていることを確認して(画像1番目の赤丸)、右下の「インポート」をクリックします(画像2番目の赤丸)。
最後に以下のそうな画面が表示されるので画像赤丸の「インポート」をクリックしてください。
これでダウンロード&インポート完了です。
プロジェクトに「M9」というファイルが追加されていますので確認してください。
「M9」を開くと中に銃のモデルがあるのでそれを前回「Player」の中に入れた「Camera」の中に入れます(画像1番目の赤丸)。
銃の大きさと位置を変えて(画像2番目の赤丸)、Playerからみて中央右隣くらいに配置します(画像3番目の赤丸)。
こちらも大きさと位置を画像の数値と同じにしても大丈夫です(スケールはx,y,z全て「2」で、位置はxが「0.5」yは「ー0.4」zは「0.9」くらいです)。
弾丸を発射する
銃のモデルを読み込めたのでこの次はこの銃から弾丸を発射できるようにしていきます。
ヒエラルキーの「+」マークをクリックし(画像1番目の赤丸)、「3Dオブジェクト」→「キューブ」とクリックしていきます(画像2番目の赤丸)。
ヒエラルキーに「Cube」が追加されるので、「M9」の中に入れます(画像1番目の赤丸)。
次にCubeの位置と大きさを変更し、スケールのZの数値を小さくして板上にした後にM9の先端に移動させます(画像2番目の赤丸)。
(画像と同じようにすると位置のxが「0」yが「0.09」zが「0.16」くらいで、スケールのxとyが「0.1」zが「0.01」くらいです)
この時必ず回転のYの数値を「180」にしてください。
このCubeは弾丸を発射させる入り口にします。
弾丸の入り口に使うだけなので透明にして当たり判定も無くしましょう。
「Mesh Renderer」という項目のチェックを外し、Cudeを透明にできます(画像3番目の赤丸)。
さらに「Box Collider」の中にある「トリガーにする」にチェックを入れます(画像4番目の赤丸)。
ここにチェックを入れることでこのCubeの当たり判定を無くすことができます。
次に銃の弾丸を作っていきます。
ヒエラルキーの「+」マークをクリックし(画像1番目の赤丸)、「3Dオブジェクト」→「スフィア」とクリックしていきます(画像2番目の赤丸)。
するとヒエラルキーに「Sphere」が追加されるのでそれを左クリック長押しでプロジェクトに持っていきます(画像1番目の赤丸)。
するとプロジェクトに「Sphere」がコピーされますが、これは後で使うのでコピーした場所を覚えておいてください。
そしてプロジェクトにコピーした「Sphere」の大きさをxyz全て「0.1」にします(画像2番目の赤丸)。
ヒエラルキーの「Sphere」はもう使わないので右クリック→「削除」をクリックします(画像3番目の赤丸)。
次にプロジェクトにある「Sphere」を選んで(画像1番目の赤丸)右側から「コンポーネントの追加」をクリックしてください(画像2番目の赤丸)。
検索欄に「R」とだけ入力し(画像1番目の赤丸)、前回と同じく「Rigidbody」を追加します(画像2番目の赤丸)。
ここまでできたら次に弾丸を発射するためのプログラムを作っていきます。
プロジェクトの「+」マークをクリックして(画像1番目の赤丸)、「作成」→「C#スクリプト」とクリックしていきます(画像2番目の赤丸)。
スクリプトの名前は「Barred」にします。
Barredのコードは以下をコピー&ペーストしてください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Barred : MonoBehaviour
{
public GameObject bullet;
public float bulletSpeed;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
GameObject Bullet = (GameObject)Instantiate(bullet, transform.position, Quaternion.Euler(transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0));
Rigidbody bulletRb = Bullet.GetComponent<Rigidbody>();
bulletRb.AddForce(transform.forward * -bulletSpeed);
Destroy(Bullet, 3.0f);
}
}
}
スクリプトができたら左クリック長押しで「M9」に入れた「Cube」に入れます(画像1番目の赤丸)。
するとCubeをクリックしたときに右側のインスペクターを下スクロールすると「Barred(スクリプト)」が追加されるので確認してください(画像2番目の赤丸)。
確認できたら「Barred(スクリプト)」内に「Bullet」という項目があるので、さっきプロジェクトに移動した「Sphere」を左クリック長押しでBulletに入れます。
(作ってる途中で気付きましたけど、スクリプトの「Barred」とコード内の「Balled」でスペルミスをしていますね、大目に見てください・・・)
そしてBullet Speedの数値を変更できるので「3000」にします。
この数値は弾丸の速度を表しているので、数値を大きくするほど早く弾丸が飛び、数値が小さいほどゆっくり飛んでいきます。
これでゲームを実行してみてマウスの左クリックで銃から弾丸が出ればOKです。
これにて今回の説明を終了します。お疲れ様でした。
次の説明ではゲームの敵キャラであるゾンビを配置してきます。
前の記事 次の記事
コメントを残す