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); } }
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); } } }