質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

2回答

1740閲覧

被弾してもGameoveyにならない

TaketoYosida

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2015/08/29 08:53

編集2015/08/30 07:05

弾幕ゲームで、Bossがplayerにパーティクルシステムの弾を当てると、関数 Hit が1増え、
5になると Gameoverのシーンに移るようにしているつもりなのですが、当たっているのに
移りません。
なぜでしょうか。Unityです。
エラーは出ていません。
まだ5日めの初心者なので、簡単なところをみのがしているかもしれません。

パーティクルシステム using UnityEngine; using System.Collections; public class ParticlController : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnParticleCollision(GameObject obj){ Debug.Log ("Particle HIt"); obj.transform.gameObject.SendMessage("Damage"); } }
プレイヤーコントローラー using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { float timer; float Hit; // Use this for initialization void Start () { Hit = 0; } // Update is called once per frame void Update () { timer += Time.deltaTime; if(Input.GetKey("left")){ if(transform.position.x > -20){ transform.position += new Vector3 (-0.1f, 0, 0); } } if(Input.GetKey("right")){ if(transform.position.x < 20){ transform.position += new Vector3 (0.1f, 0, 0); } } if(Input.GetKey("up")){ transform.position += new Vector3 (0,0 , 0.1f); } if(Input.GetKey("down")){ transform.position += new Vector3 (0, 0, -0.1f); } if (transform.position.z < 90) { transform.position += new Vector3 (0, 0, 0.02f); } if (Hit > 4) { Destroy(this.gameObject); Application.LoadLevel ("Gameover"); } if (Hit == 4) { //Destroy (Yuka.gameObject); } } void OnCollisionEnter (Collision col){ Debug.Log (col.gameObject.name); if (col.gameObject.tag == "enemy") { Destroy (this.gameObject); Application.LoadLevel ("Gameover"); } } public void Damage(){ Debug.Log ("PlayerHit"); //Destroy (this.gameObject); Hit = Hit + 1; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoichiSugiyama

2015/08/29 12:18

PlayerControllerクラスのDamage()にちゃんと処理が来ているのか、またUpdate()のHitを判定した結果5以上と判定されているのかDebug.Log()を使って確認した結果を教えてください。
TaketoYosida

2015/08/29 12:54

PlayerHitがでないのでダメージ処理きてませんね。。。
guest

回答2

0

OnParticleCollisionは発生していますか?

投稿2015/08/29 14:42

Jake

総合スコア289

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaketoYosida

2015/08/30 00:40

はい。。。もう一つパーティクルシステムがあって、同じスクリプトをいれてあるんですが そちらは正常に処理されるんですよ。。。
Jake

2015/09/10 15:08

ちょっと時間経ちましたが、これ単純にSendCollisionにチェックが入っていない…というやつだったりします?
guest

0

unity

1obj.SendMessage("Damage");

ではだめなんでしたっけ?

投稿2015/08/29 13:50

KenTerada

総合スコア751

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問