[Unity] Prefab: 弾を発射する

Unityで弾を発射したい場合に、弾丸のオブジェクトをあらかじめ大量作っておくのでしょうか? 確かに現実世界ではそうなりますが、Unityでは再利用可能なPrefabを使います
 
簡単にGameObjectからたくさんの弾丸が発射されるような例を作ってみます
 
shoot_4

Unity 2017.1




Prefab

 
prefabとはご存知のプレハブ住宅で言うところのプレハブです。
fabricateと言う「製造、制作」にpreと言う前置詞がついて、事前に作成したものを指す訳です。プレハブ住宅のようにあらかじめ作っておいて、たくさん量産するのですね。納得…
 
まず最初に必要なGameObjectを作りその後プレハブを作成していきます。
 
スクリーンショット 2016-01-07 14.57.36
 

 

Cube

 
Gunの土台を作ります
位置を 0,0,0
Scaleを 2,2,2
 
スクリーンショット 2016-01-07 14.58.32

 

Capsule

 
銃身に見立ててCapsuleを設定します
z方向に1.5ずらす
スクリーンショット 2016-01-07 14.58.58

 

Muzzle

 
Muzzle、銃口です。これは弾丸が発射される位置を特定するためにGameObjectの「Create Empty」で作った空のオブジェクトで、Capsuleの中に位置を設定します。
 
スクリーンショット 2016-01-07 14.59.09

 

bullet

 
bullet、弾丸。Prefabで丸を作るための雛型ですが、後で削除しますので場所は適当です。Scaleは 0.5,0.5,0.5 とします。
 
「Component」->「Physics」から「Rigidbody」を設定。Use Gravityはここではチェックを外します。
 スクリーンショット 2016-01-07 14.59.59
 
Main Cameraを調整して弾丸の飛び出すのがわかるようにします。
 
スクリーンショット 2016-01-07 15.38.42
 
スクリーンショット 2016-01-07 15.39.46

 

Prefab 作成

 
prefabの作り方は色々あるようですが簡単に、HierarchyにあるGameObjectをドラッグ&ドロップでAssetsに置くとPrefabになります。
 
スクリーンショット 2016-01-07 15.16.37

 

Script

 
キーボードの「z」を押すと弾丸が発射されるようにコーディングします
 
ProjectのCreateから「C# Script」で
Shooting.cs を作ります

 
これをCubeにドラッグ&ドロップするとInspector にShooting (Script)が追加されます。
 
スクリーンショット 2016-01-07 15.50.01
 
Shooting (Script) には
Bullet
Muzzle
がそれぞれNoneになっているので、HierarchyのMuzzleと
Assetsのbullet.prefabをドラッグ&ドロップします。
 
スクリーンショット 2016-01-07 15.56.02
 
Hierarchyのbulletはいりませんので消去します。
 
これでGameシーンに切り替えて
「z」キーを押すと弾丸が発射されます。
 
shoot_4
 
 
References:
プレハブ
Instantiate
AdForce

ページのトップへ戻る





シェアする

  • このエントリーをはてなブックマークに追加

フォローする