2016-07-06 93 views
0

如果在父節點被禁用時如何播放粒子系統效果?Unity如果父母被禁用時如何播放粒子系統效果?

我想在我的障礙位置上發揮粒子系統效應。問題是,我的粒子,如果我的對象的孩子,當我禁用父(對象)粒子系統得到的禁用它,並沒有發揮影響

我怎樣才能在相同的位置障礙物以及障礙物何時被禁用/銷燬。

回答

1

創建GameObject調用ParticlesHolder。附上下面的腳本,然後確保將編輯器的大小更改爲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腳本:

ParticlesContainer particle; 

在你Start()功能:

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

在你OnCollisionEnter()功能:

particle.playParticle(0, transform.position); 

在這個例子中,數組中的第一個粒子將會播放。

如果有兩個粒子,01是通過兩種有效值。如果有3顆粒然後012是三個值中傳遞。

就像你有public void SetDamage(int a_damage)功能,您可以添加public void SetParticle(int particleId)函數來設置要播放的粒子。

+0

我想要一個普通的粒子在一個普通的物體上發揮作用,而一個爆炸粒子在特殊的物體上發揮作用 – John

+0

@Groude我知道你的問題。你讀過答案了嗎?是你做的嗎? – Programmer

+0

是的,沒有任何反應 – John