[Unity] Prefab: 弾を発射する

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

簡単にGameObjectからたくさんの弾丸が発射されるような例を作ってみます

shoot_4

Unity 5.4.2f2

 

sponsored link

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

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

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

ページのトップへ戻る
 
sponsored link
  • このエントリーをはてなブックマークに追加