Ejemplo n.º 1
0
    private void CreateParticles(float angle, int numSoundParticles, bool loop)
    {
        particleController prev  = null;
        particleController first = null;

        for (float i = 0; i < angle; i += (float)angle / numSoundParticles)
        {
            particleController pc = Instantiate(particlePrefab) as particleController;
            if (prev != null)
            {
                prev.Connect(pc, soundColor);
            }
            else
            {
                first = pc;
            }
            prev = pc;

            Physics2D.IgnoreCollision(pc.GetComponent <Collider2D>(), GetComponent <Collider2D>());
            Vector2 dir = new Vector2(Mathf.Cos(i), Mathf.Sin(i));
            pc.rb.velocity        = dir * soundSpeed;
            pc.transform.position = transform.position;
            pc.setStrength(soundStrength);

            Destroy(pc.gameObject, lifetimeSoundParticles);
        }
        if (loop)
        {
            prev.Connect(first, soundColor);
        }
    }
Ejemplo n.º 2
0
 void DrawLine()
 {
     if (leftLine != null)
     {
         Vector3 leftPos = left.GetComponent <Transform>().position;
         if ((leftPos - transform.position).magnitude > cutoff)
         {
             Destroy(leftLine);
             leftLine = null;
         }
         else
         {
             leftLine.SetPosition(0, leftPos);
             leftLine.SetPosition(1, transform.position);
             Color currColor = leftLine.material.color;
             currColor.a            -= Time.deltaTime / strength;
             leftLine.material.color = currColor;
             leftLine.SetColors(currColor, currColor);
         }
     }
 }