Unity5での衝突判定後にParticleSystemだけを残してオブジェクトを消す方法

2016年9月22日

Unity5でのPrefabに設定したParticlelSystemをスクリプトで起動する方法」に引き続き、衝突判定後に Particle System だけを残してオブジェクトを消す方法です。
「Unity5でのPrefabに設定したParticlelSystemをスクリプトで起動する方法」のソースコードを流用して、機能を追加していきます。

といっても、単純に Particle System の起動後に、Prefab に設定してある Material の Alpha を 0 にするだけです。

public class CubeControlScript : MonoBehaviour
{
    private ParticleSystem particle;

    // Use this for initialization
    void Start ()
    {
        particle = this.GetComponent<ParticleSystem> ();

        // ここで Particle System を停止する.
        particle.Stop ();
    }

    void OnTriggerEnter (Collider col)
    {
        // ここで Particle System を開始します.
        particle.Play ();

        // Material の Alpha を 0 にします.
        {
            // Mesh Renderer の Material を消す場合.
            Material material = gameObject.GetComponent<MeshRenderer> ().material;
            Color color = new Color (material.color.r, material.color.g, material.color.b, 0.0F);
            gameObject.GetComponent<MeshRenderer> ().material.color = color;
        }
        {
            // Material を消す場合.
            Material material = gameObject.GetComponent<Material> ();
            Color color = new Color (material.color.r, material.color.g, material.color.b, 0.0F);
            gameObject.GetComponent<Material> ().color = color;
        }
    }
}

これで、Particle System だけを残して、オブジェクトを消すことができます。

おしまい

スポンサーリンク