using UnityEngine; using Assets.WasapiAudio.Scripts.Unity; public class LineController : TripsitterAve { public LineRenderer prefab; public int LineCount = 64; public float LineWidth = 0.5f; public float LineSpacing = 1.0f; private LineRenderer[] lines; private float AudioScale = 10; private float Power = 1.5f; private int z = 0; void Start() { lines = new LineRenderer[LineCount]; for (int i = 0; i < LineCount; i++) { LineRenderer lineRenderer = GameObject.Instantiate(prefab); lineRenderer.transform.parent = transform; lineRenderer.widthMultiplier = LineWidth; lineRenderer.transform.Translate(0.0f, 0.0f, LineSpacing * 1.0f); lineRenderer.positionCount = SpectrumSize; lines[i] = lineRenderer; } } void Update() { var spectrumData = GetSpectrumData(); LineRenderer line = lines[z]; for (int i = 0; i < SpectrumSize; i++) { var audioScale = Mathf.Pow(spectrumData[i] * AudioScale, Power); var x = LineSpacing * i; line.SetPosition(i, new Vector3(x, audioScale, 0.0f)); } z = (z + 1) % LineCount; } }