2016-10-07 22 views
0

私のparticlesystem.Play()は機能しません。私はこの問題で数時間を費やしてしまったが、まだ分かりませんでした。Unity ParticleSystem再生と停止

私のキャラクターがオブジェクトにヒットするたびに、関数particleAuraPlay()が呼び出され、 "HIT"というログメッセージが表示されます。これは、関数が正しく呼び出されていることを意味します。

playAuraがtrueに設定されている場合、パーティクルが再生され、ログメッセージ "Running"も表示されます。メッセージが表示されているので、私の論理は正しいと仮定していますが、パーティクルは再生を開始しません。誰も私の問題を解決してもらえますか?

using UnityEngine; 
using System.Collections; 

public class ParticleController : MonoBehaviour { 

    private bool playAura = false; 
    private ParticleSystem particleObject; 

    void Start() { 
     particleObject = GetComponent<ParticleSystem>(); 
     particleObject.Stop(); 
    } 


    void Update() { 
     if (playAura) 
     { 
      Debug.Log("Running"); 
      particleObject.Play(); 
     } 

    } 

    public void particleAuraPlay() 
    { 
     Debug.Log("HIT"); 
     playAura = true; 
    } 
} 
+0

Logicは正しいように思える...あなたのparticlesystemオブジェクトがアクティブまたはnoですチェック...と描かれた層や位置を確認してください? – user1201239

+0

@ bubibu - パーティクルシステムが適切な場所にありますか?私は親を忘れる前に問題を抱えていたか、間違った座標系を使った。また、私は更新で再生を呼び出すことはありません、ちょうどそれを一度呼び出す。 – Absinthe

+0

こんにちは、ありがとう。私は、particleObject.Stop()という行を除外すると、パーティクルが再生を開始するため、適切な場所にあると確信しています。 – bubibu

答えて

0

When the playAura is set to true, the particle should play, and again the log message "Running" is showing up, too. Since the message is showing I assume my logic is correct but the particle just won't start playing

ザ・は論理エラーです。

particleAuraPlay()関数が呼び出されると、playAuratrueに設定されます。更新機能で

particleObject.Play();playAura以来、すべてのフレームがtrueある呼び出されます。

これはできません。 particleObject.Play();各フレームを呼び出すと、実際には何も行われません。各フレーム内のパーティクルを再生して停止させ、パーティクルがまったくなくなるためです。

ソリューションはtrue場合は、particleObject.Play();関数を呼び出し、playAuratrueであるかどうかを確認することですparticleAuraPlay()が再び呼び出されるまでparticleObject.Play();関数が再び呼び出されないようにfalseplayAuraを設定します。

新しいUpdate()機能は、論理エラーが修正されています。

void Update() 
{ 
    if (playAura) 
    { 
     Debug.Log("Running"); 
     particleObject.Play(); 
     playAura = false; 
    } 
} 
関連する問題