45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
|