HIROMARTBLOG

Unity、Cocos2d-xのこととか書けたらいいですね。

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~衝突判定の設定2~

      2015/04/06

前回の記事の最後で言っていた、敵の弾が宇宙戦闘機に衝突した時の処理を今回書いていきます。

だいたい前回と同じなのでさらっと書いていきます。

それぞれにColliderの設定

まずは、Colliderを敵の弾と宇宙戦闘機に追加します。

宇宙戦闘機のCollider

3dShooting76

また、宇宙戦闘機には[Rigidbody]も追加してください。

3dShooting78

 

敵の弾のCollider

3dShooting77

 

宇宙戦闘機にOnTriggerEnterの実装

敵に実装したOnTriggerEnterを宇宙戦闘機にも追加していきます。


using UnityEngine;
using System.Collections;

public class StarfighterControl : MonoBehaviour {

float X_Speed = 1;
 float Z_Speed = 1;

public GameObject Prefab;
 public GameObject EnemyObject;
 public GameObject Explosion;
 float intervalTime;
 float enemyintervalTime;

// Use this for initialization
 void Start() {
 intervalTime = 0;
 enemyintervalTime = 0;
 }

// Update is called once per frame
 void Update() {

float vertical = Input.GetAxis("Vertical");

float horizontal = Input.GetAxis("Horizontal");

if (Input.GetKey("up")) {
 transform.Translate(0, 0, vertical * Z_Speed);
 }
 if (Input.GetKey("down")) {
 transform.Translate(0, 0, vertical * Z_Speed);
 }

 if (Input.GetKey("left")) {
 transform.Translate(horizontal * X_Speed, 0, 0);
 }
 if (Input.GetKey("right")) {
 transform.Translate(horizontal * X_Speed, 0, 0);
 }

intervalTime += Time.deltaTime;
 if (Input.GetKey("space")) {
 if (intervalTime >= 0.1f) {
 intervalTime = 0.0f;
 Instantiate(Prefab, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
 }
 }

enemyintervalTime += Time.deltaTime;
 if (enemyintervalTime >= 4.0f) {
 enemyintervalTime = 0;
 Instantiate(EnemyObject, new Vector3(transform.position.x, transform.position.y, transform.position.z + 200), Quaternion.identity);
 }

}

void OnTriggerEnter(Collider coll) {
 if (coll.gameObject.tag == "EnemyBullet") {
 Instantiate(Explosion, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
 Destroy(this.gameObject);
 }
 }
}

コードは、上記のモノです。

追加した部分もほぼ同じです。

指定するタグが[EnemyBullet]に変わったくらいです。

これに合わせて、敵の弾に[EnemyBullet]というタグをセットする必要があります。

3dShooting79

これがボクの敵の弾です。

なので、それにタグをセットしています。

まとめ

これで、敵の弾が当たった時に、自機(宇宙戦闘機)が爆発すると思います。

次回は、ゲームのスタートボタンと宇宙戦闘機が爆発した時にゲームオーバーの表示とリセットボタンの設置をしていこうと思います。

では。

 - IT, Unity , , , ,

広告

広告

コメントを残す

  関連記事

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~プロジェクトの作成とUnityの設定~

ゲームを作りたいなぁと思っても、プログラミングって難しそうだし、絵とか3Dモデル …

Unity5にVisual Studio Tools for Unity ( UnityVS ) を追加する方法

最近リリースされた、Unity5では、今までのUnity4.6などと同じ方法では …

Windows環境でBitbucketとSourceTreeの導入(SSHキー作成とBitbucketへの登録)

前回の記事の続きです。 Bitbucketの登録、SourceTreeのインスト …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~AssetStoreの使い方とシーンへの追加~

前回の記事 でプロジェクトの作成とUnityの設定をしたと思います。 今回は、A …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~導入編~

今回から数回に分けて、UnityとPhotonCloudを使って、リアルタイムオ …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~サーバーへの接続~

前回の記事でPhotonCloudに繋がっている事が確実にわかったと思います。 …

Unityで作ったアプリをケーブルでAndroid実機で動かす方法

個人でUnityを使って作ったゲームを実機で動作するのかを試したい時ってあります …

Unity Adsの使い方・導入方法~Unityで作ったゲームで広告収入~

今回は、Unity Adsの使い方・導入方法を書いていきます。   目 …

Android Studio3.1を日本語化する

Android Studioが3.1にバージョンアップして日本語化の方法が若干変 …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~アニメーションの同期~

目次1 前回の記事の変更2 Photon Animator Viewの追加3 o …