スペースキーを押している間カメラが上昇し、離すと下降するシステムを作っています。
やりたいことは、
「地面に落ちたとき、一度だけパーティクルを再生」
と、
「高さが50に来たときパーティクルを再生」
なのですが、それぞれで問題が起こりました。
まず、「地面に落ちたとき、一度だけパーティクルを再生」ですが、
地面の高さが10なので、y=10のときあらかじめ設置したパーティクルを再生するスクリプトをカメラに付けました。
C#
1if (transform.position.y<=10) { 2 transform.position = new Vector3(-9f, 10, 4f); 3 //下降中に高さが10より下にならないようにしています 4 var PS2 = GameObject.Find ("particle2"); 5 PS2.GetComponent<ParticleSystem>().Play (); 6}
しかしこれだと、パーティクルのループは外していても、
y=10にいる間は再生が繰り返されてしまいます。
地面に落ちた瞬間の一回だけ再生させる方法はないでしょうか。
また、「高さが50に来たときパーティクルを再生」ですが、
カメラの座標の位置に再生するようにすると、
(またはあらかじめy=50に設置しても)
その場で再生はされても、再生が続いている間はカメラの動きについてこないので、
例えば上昇中に再生されるとスーン…と下の方に置いていかれてしまいます。
再生中もカメラの動きについてくる方法はないでしょうか。
(親子関係にすると、カメラに付けたMouseLookスクリプトのせいか、
視点が変わると子パーティクルも回転して見えなくなってしまいます)
コードはこうなっています。
C#
1if (transform.position.y>=50&&transform.position.y<=50) { 2 var PS1 = GameObject.Find ("particle1"); 3 GameObject.Find("particle1").transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z); 4 PS1.GetComponent<ParticleSystem>().Play (); 5}
両方または片方でも良いので、解決方法を教えていただけませんか。
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/22 11:41