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シューティングゲーム開発!!~敵の作成~

今回は、敵の作成を行います。 目次1 準備2 敵機体のインポート2.1 Scri …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~ゲームスタートボタン・リセットボタンの設置~

前回までで、ゲームのシステムがほぼ出来ました。 自機を動かす事、敵を生成する事、 …

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

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

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~弾の作成とそれのPrefab化~

前回の記事では、宇宙戦闘機を動かすところまでやったと思います。 今回は、その宇宙 …

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

今回は、衝突判定について書いていきます。 弾と機体があたった時に、判定をして機体 …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~オブジョクトの同期~

前回の記事では、同期するオブジョクトの生成を行ってもらいました。 今回は、オブジ …

no image
Windows環境でBitbucketとSourceTreeの導入(フェッチとプルの使い方)

前回の記事では、コミット・プッシュの使い方を書いたと思います。 自分が変更した内 …

プログラミング初心者でもゲームが作れる!「Unity5」のインストール方法

今日、アップデートされたばかりの「Unity5」のインストールの方法を紹介してい …

3Dシューティングゲームを公開

前回までで紹介してきた「プログラミング初心者でも簡単!Unity5で3Dシューテ …

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

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