Unity3D:ゲーム制作-無限インベーダ(1/4)の続きです
ミサイルの作成
上矢印キーを押した際に発射されるミサイルを作成します。
前回作成した砲台(Battery)をHierarchyからAssetsへドラッグ・アンド・ドロップしてプレハブにしておきます。
プレハブを作成したらHierarchyからBatteryを削除します。
メニューGameObject-CreateOther-Cubeを選択して、HierarchyにCubeを追加します。
TransformのPositionは(0, 0, 0)、Rotationは(0, 0, 0)、Scaleは(0.5, 1, 1)に設定します。
Cubeの名前をMissileに変更します。
ミサイルのスクリプト作成
ミサイルが画面の上へ移動するスクリプトを作成します。
AssetsにC#スクリプトを追加して、名前をMissileに設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using UnityEngine; using System.Collections; public class Missile : MonoBehaviour { public float rateY = 12f; public float limitY = 12f; void Update () { Vector3 pos = transform.localPosition; pos.y += rateY * Time.deltaTime; if(pos.y > limitY) { Destroy(gameObject); } else { transform.localPosition = pos; } } } |
6行目:ミサイルの1秒間あたりの移動量を設定します。
7行目:ミサイルが画面から消えたことを判断するY座標を設定します。
11-20行目:現在の位置に移動量を加えます。リミットを超えた場合はオブジェクト自身を削除します。
作成したスクリプト(Missile.cs)をHierarchyのMissileへ追加します。
シーンを再生するとミサイルが画面の上へ移動します。画面の外へ移動するとHierarchyから消えることも確認します。
ミサイル(Missile)をHierarchyからAssetsへドラッグ・アンド・ドロップしてプレハブにします。
プレハブを作成したらHierarchyからMissileを削除します。
インベーダの作成
インベーダもUnityに用意されているCubeとEmpty(GameObject)で作成します。
※前回(Unity3D:ゲーム制作-無限インベーダ(1/3))の砲台の作成を参考に作ってみてください。
インベーダの衝突判定領域設定
現状では、Invaderを構成しているCube全てにBoxColliderが設定されています。
これらを削除して、Invaderを包括するBoxColliderを設定します。
HierarchyでInvaderを選択します。
メニューComponent-Physics-BoxColliderを選択して、BoxColliderのSizeを(5, 4, 1)に設定します。
インベーダを包括するコライダーが設定出来ました。
インベーダ用のスクリプト作成
インベーダに3回ミサイルが当たると消えるスクリプトを作成します。
AssetにC#スクリプトを追加して、名前をInvaderに設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using UnityEngine; using System.Collections; public class Invader : MonoBehaviour { int life; void Start() { collider.isTrigger = true; life = 3; } void OnTriggerEnter(Collider other) { life--; if(life < 1) { Destroy(gameObject); } } } |
6行目:インベーダのライフカウンターを用意します。
10行目:衝突判定をONにします。
11行目:インベーダの初期ライフを3に設定します。
14-21行目:衝突が発生したらライフカウンタをデクリメントして1未満になったらインベーダを消す。
作成したスクリプト(Invader.cs)をHierarchyのInvaderへ追加します。
HierarchyのInvaderをAssetsへドラッグ・アンド・ドロップしてプレハブにします。
プレハブを作成したらHierarchyからInvaderを削除します。
Unity3D:ゲーム制作-無限インベーダ(3/4)へ続きます
コメントを残す
コメントを投稿するにはログインしてください。