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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Unity3D

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

Q&A

1回答

14320閲覧

unityでパーティクルがうまく表示されない

ayapon

総合スコア12

Unity3D

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

0グッド

0クリップ

投稿2018/12/16 10:21

編集2022/01/12 10:55

前提・実現したいこと

unityでアーチェリーゲームのARアプリを作っています。
TargetにDartが刺さった時にパーティクルを表示させたいのですが、刺さった時に何も表示されません。
パーティクルがダートオブジェクトと同じ位置に出る設定になっていないかもしれません。
どのように設定したらいいでしょうか?
あまり知識がないので、ご回答お願いいたします。

イメージ説明
イメージ説明
イメージ説明
イメージ説明

発生している問題・エラーメッセージ

エラーは出ていません。

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; public class DartShoot : MonoBehaviour { public float force = 1000; private void OnCollisionEnter(Collision other) { GetComponent<Rigidbody>().isKinematic = true; GetComponent<ParticleSystem>().Play(); } void Update() { if (Input.GetMouseButtonDown(0)) { GetComponent<Rigidbody>().AddForce(transform.forward * force); } } }

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; public class DartInstantiate : MonoBehaviour { public GameObject dart; public GameObject target; public float force = 10000; void Update() { if (Input.GetMouseButtonDown(0)) { GameObject instanceDart = Instantiate(dart, transform.position, transform.rotation); instanceDart.GetComponent<Rigidbody>().AddForce(transform.forward * force); instanceDart.transform.parent = target.transform; } } }

試したこと

Dartにパーティクルと上記のスクリプトを実装しました。

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

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

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

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

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

negitama

2018/12/16 11:55

ParticleSystemコンポーネントはどのオブジェクトに設定していますか? インスペクタの設定を画像で貼るなどすると状況が分かりやすいと思います。
sakura_hana

2018/12/17 00:56

パーティクルはダートオブジェクトと同じ位置に出る設定になってますか? (パーティクルはパーティクルの座標で放出されるので、ParticleSystemコンポーネントがダートオブジェクトに付いていても、パーティクルがダートオブジェクトと同じ位置に出るとは限らない)
ayapon

2018/12/17 14:56

パーティクルがダートオブジェクトと同じ位置に出る設定にしていないかもしれません。どのように設定すればいいか教えていただけますか?
sakura_hana

2018/12/19 01:14

ParticleSystemコンポーネントの「Shape」の内容をアップしてもらえますか?
guest

回答1

0

以下を確認してみてください。

  1. Targetのオブジェクトにコライダーはセットしてありますか?

  2. GetComponent<ParticleSystem>().Play(); の前の行に、

Debug.Log ( "ぶつかった" );
などと追加して、実行してTargetに衝突したとき、コンソールに「ぶつかった」と表示されますか?

【追記】
こちらでは問題を再現させられませんでした。
参考までに、こちらで確認に使用したスクリプトと動画GIFを載せておきます。検証しやすさなどを考えて改変しています。問題なくパーティクルが放出されています。

![イメージ説明

using UnityEngine; // ダートを生成する(適当なオブジェクトにアタッチする。カメラでも可) public class Shooter : MonoBehaviour { public GameObject dart; public GameObject target; public float force; [SerializeField] Vector3 dartInstantiatePosition; // ダートを生成する位置 [SerializeField] Vector3 dartDirection; // ダートが飛ぶ方向 void Update () { if ( Input.GetMouseButtonDown ( 0 ) ) { GameObject instanceDart = Instantiate(dart, dartInstantiatePosition, Quaternion.identity); instanceDart.GetComponent<Rigidbody> ().AddForce ( dartDirection * force ); instanceDart.transform.parent = target.transform; } } }
using UnityEngine; // ParticleSystemコンポーネントを持つDartオブジェクトにアタッチする public class DartCollision : MonoBehaviour { private void OnCollisionEnter ( Collision collision ) { // ぶつかった相手にTargetタグが付いていれば処理を行う if ( collision.gameObject.CompareTag ( "Target" ) ) { Debug.Log ( "ぶつかった" ); GetComponent<ParticleSystem> ().Play (); } } }

投稿2018/12/16 12:41

編集2018/12/16 14:51
negitama

総合スコア943

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

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

ayapon

2018/12/16 12:50

1)はい、セットしています。 2)表示されました。
negitama

2018/12/16 13:14 編集

そうですか。では、衝突の検出はされているようですね。 以下で、そもそもDartに設定してあるParticleSystem自体が動くのかを確認してみてください。 1) ParticleSystemのインスペクターの設定で、PlayOnAwakeにチェックを入れたままにしておくと、UnityEditorでの実行開始時にパーティクルが放出されますか? 2) (PlayOnAwakeのチェックを元に戻したあと)Updateのif文の中に GetComponent<ParticleSystem>().Play(); を追記して実行したら、ダートが飛ぶのと同時にパーティクルが放出されますか?
ayapon

2018/12/16 13:33

ダートをARCameraにInstantiateしてあり、クッリクしたらダートが表示され飛ぶというというようにコードを書いています。 実行開始時にダートの様子がわかるようにダートのプレファブをヒエラルキーに戻してみたところ、 1)2)どちらもパーティクルが放出されました。
negitama

2018/12/16 13:48 編集

そうですか。では衝突の検出も、パーティクルの放出も、問題ないということになりますね。 あとは、「ダートをARCameraにInstantiateしてあり」という部分がちょっとよく分からないので、その部分のコードも質問に追記していただければ確認します。(AR機材は持っていないのでAR特有の問題は分かりませんが)
ayapon

2018/12/16 14:04

AR機材は使っておらず、MacbookPro内蔵のカメラだけを使用しています。
negitama

2018/12/16 14:49

質問者さんの現象を再現させられなかったので、当方はここまでの対応とさせていただきます。回答のほうにこちらの検証で使用したスクリプトと参考動画を載せておきます。
ayapon

2018/12/17 14:54

ご丁寧にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問