2016-07-06 7 views
0

パーティクルシステムエフェクトを再生するには、親が無効になっている場合?Unityパーティクルシステムのエフェクトを再生する方法は、親が無効になっている場合ですか?

障害物の位置でパーティクル効果を再生したい。問題は、自分のオブジェクトの子が私のオブジェクトの子で、私が親(オブジェクト)を無効にしたときに、パーティクルシステムが無効になって影響を再生しないということです。

どのように私は同じ位置障害物と障害物が無効になったとき/破壊されたとき。

答えて

1

パーティクルホルダーと呼ばれるゲームオブジェクトを作成します。下のスクリプトを添付して、エディタから2にサイズを変更してください。 2つのパーティクルを各スロットに入れます。アイデアは、粒子がdisabledではないということです。

public class ParticleHolder : MonoBehaviour 
{ 

    public ParticleSystem[] effects; 

    public void playParticle(int particleNumber, Vector3 particlePos) 
    { 
     if (effects != null && effects[particleNumber] != null) 
     { 
      if (effects[particleNumber].isPlaying) 
       effects[particleNumber].Stop(); 

      ParticleSystem tempPart = Instantiate(effects[particleNumber], particlePos, new Quaternion()) as ParticleSystem; 
      tempPart.Play(); 
     } 

    } 
} 

、あなたのExampleスクリプト内のコードに以下のコードを追加します。あなたのOnCollisionEnter()機能で

particle = GameObject.Find("ParticlesHolder").GetComponent<ParticlesContainer>(); 

particle.playParticle(0, transform.position); 
あなた Start()機能で

ParticlesContainer particle; 

この例では、配列の最初のパーティクルが再生されます。

2個の粒子、01がある場合は、3粒子012を渡すための3つの値ですがある場合。両方で合格するために有効な値です。

あなたはpublic void SetDamage(int a_damage)機能を持っているだけのように、再生するパーティクルを設定する機能をpublic void SetParticle(int particleId)に追加することができます。

+0

通常のオブジェクトと特殊なオブジェクトで再生される爆発粒子で再生する通常のパーティクルを希望します – John

+0

@Groude私はあなたの問題を知っています。あなたはその答えを読んだのですか?あなたはそれをやりました? – Programmer

+0

はい、何も起こらない – John

関連する問題