using UnityEngine; public class LineBarSpectrum : TripsitterAve { private LineRenderer[] _lines; private float AudioScale = 10; private float Power = 1.5f; public float LineWidth = 0.5f; public float LineSpacing = 1.0f; void Start() { LineRenderer prefab = GameObject.Find("LineBar").GetComponent(); _lines = new LineRenderer[SpectrumSize]; for (int i = 0; i < SpectrumSize; i++) { LineRenderer lineRenderer = GameObject.Instantiate(prefab); lineRenderer.transform.parent = transform; lineRenderer.material = new Material(Shader.Find("Sprites/Default")); lineRenderer.widthMultiplier = LineWidth; lineRenderer.positionCount = 2; _lines[i] = lineRenderer; } } void Update() { var spectrumData = GetSpectrumData(); for (int i = 0; i < SpectrumSize; i++) { var line = _lines[i]; var audioScale = Mathf.Pow(spectrumData[i] * AudioScale, Power); var points = new Vector3[2]; var x = LineSpacing * i; points[0] = new Vector3(x, 0.0f, 0.0f); points[1] = new Vector3(x, audioScale, 0.0f); line.widthMultiplier = LineWidth; line.SetPositions(points); } } }