Unity5でVR開発 シューティングゲームが作りたくて2 レーザービーム発射
0. プロローグ
今回はレーザービーム光線を出します!
写真はGoogle Cardboard SDKのものです。
注視点のポインターとGameObjectが重なった時ごにょごにょする方法はこちら!
□ハコスコ編 (Google Cardboard SDK for Unity)
http://qiita.com/39_isao/items/6a9ffa1c6df3ebb197c2
□Gear VR編
http://qiita.com/39_isao/items/438bd4aa38fc46c09914
1.まずはレーザービームを作る
こちらの記事を参考に、Line Rendererでレーザーを作ります。
レーザー光線を作る【Unity】
http://aki-tk.hateblo.jp/entry/2016/01/02/193747
私はBeamというGameObject名にしました。
アクセスしやすいよう、「Beam」というタグを設定しておきます。
2.レーザービームの設定
1.BeamのLine Rendererコンポーネントを非アクティブにしておきます。
(敵にヒットした時にアクティブにします。)
2.Beam.csというビーム発射と停止の
制御スクリプトを書いて、アタッチします。
using UnityEngine;
using System.Collections;
public class Beam : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
/* ビーム発射 */
public void FiringBeam(GameObject[] objs){
var lineRenderer = GetComponent<LineRenderer>();
lineRenderer.enabled = true;
lineRenderer.SetPosition(0, objs[0].transform.position);
lineRenderer.SetPosition(1, objs[1].transform.position);
}
/* ビーム終了 */
public void Exit(){
var lineRenderer = GetComponent<LineRenderer>();
lineRenderer.enabled = false;
}
}
3. 銃口の設定
ビームが発射される銃口にしたいGameObjectに「Muzzle」というタグを設定します。
今回私は潜水艦オブジェクトの先端にしました。
4. 撃たれるオブジェクトの設定
ビームで撃たれるGameObject(以後、敵と表記)に下記Scriptをアタッチします。
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {
private GameObject Beam;
private GameObject Muzzle;
void Start () {
// BeamとMuzzleオブジェクトの取得
Beam = GameObject.FindWithTag("Beam");
Muzzle = GameObject.FindWithTag("Muzzle");
}
// Update is called once per frame
void Update () {
}
// ビームの始点と終点を引数で持たせ、BeamオブジェクトにSendMessageする関数
public void SendBeam(){
GameObject[] objs = new GameObject[2];
objs[0] = this.gameObject;
objs[1] = Muzzle;
Beam.SendMessage("FiringBeam",objs);
}
// ビームが消える処理を呼ぶ関数
public void ExitBeam(){
Beam.SendMessage("Exit");
}
}
5.ビームで撃たれるGameObjectにイベントトリガー設定
マーカーが重なった時、ビームが表示され、外れると消えるようにします。
Pointer Enter.... 注視点マーカーと敵が重なった時のイベント
Enemy.SendBeam()を設定
Pointer Exit... 注視点マーカーが敵から外れた時のイベント
Enemy.ExitBeam()を設定
この辺はこちらの記事で
http://qiita.com/39_isao/items/6a9ffa1c6df3ebb197c2
Gear VRの場合はイベントトリガーは使わず、コードで書きました。
6.完成!
Author And Source
この問題について(Unity5でVR開発 シューティングゲームが作りたくて2 レーザービーム発射), 我々は、より多くの情報をここで見つけました https://qiita.com/39_isao/items/ee59eca677872be0beba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .