line spectrum
This commit is contained in:
1 parent
f3f8c85475
commit
f4566bdfea
7 files changed
+206
-54
No files matched your search
+26
-41
@@ -1,46 +1,31 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class LineSpectrum : TripsitterAve
|
||||
{
|
||||
private GameObject[] _spectrumBars;
|
||||
private Vector3[] _originalPositions;
|
||||
private Vector3 _originalScale;
|
||||
public class LineSpectrum : TripsitterAve {
|
||||
private GameObject[] _spectrumBars;
|
||||
private Vector3[] _originalPositions;
|
||||
private Vector3 _originalScale;
|
||||
|
||||
public GameObject Prefab;
|
||||
public float AudioScale;
|
||||
public float Power;
|
||||
private float AudioScale = 10;
|
||||
private float Power = 1.5f;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
_spectrumBars = new GameObject[SpectrumSize];
|
||||
_originalPositions = new Vector3[SpectrumSize];
|
||||
_originalScale = Prefab.transform.localScale;
|
||||
|
||||
var width = Prefab.transform.localScale.x;
|
||||
|
||||
for (var i = 0; i < SpectrumSize; i++)
|
||||
{
|
||||
var spectrumBar = GameObject.Instantiate(Prefab);
|
||||
spectrumBar.transform.parent = transform;
|
||||
spectrumBar.transform.localPosition = new Vector3(width * i, 0.0f, 0.0f);
|
||||
_spectrumBars[i] = spectrumBar;
|
||||
_originalPositions[i] = spectrumBar.transform.localPosition;
|
||||
}
|
||||
|
||||
Prefab.SetActive(false);
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
var spectrumData = GetSpectrumData();
|
||||
|
||||
for (var i = 0; i < SpectrumSize; i++)
|
||||
{
|
||||
var audioScale = Mathf.Pow(spectrumData[i] * AudioScale, Power);
|
||||
var newScale = new Vector3(_originalScale.x, _originalScale.y + audioScale, _originalScale.z);
|
||||
var halfScale = newScale / 2.0f;
|
||||
_spectrumBars[i].transform.localPosition = new Vector3(_originalPositions[i].x + halfScale.x, _originalPositions[i].y + halfScale.y, _originalPositions[i].z + halfScale.z);
|
||||
_spectrumBars[i].transform.localScale = newScale;
|
||||
}
|
||||
}
|
||||
void Start() {
|
||||
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
|
||||
lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
|
||||
lineRenderer.widthMultiplier = 0.5f;
|
||||
lineRenderer.positionCount = SpectrumSize;
|
||||
Debug.Log("{SpectrumSize}");
|
||||
}
|
||||
|
||||
void Update() {
|
||||
LineRenderer lineRenderer = GetComponent<LineRenderer>();
|
||||
var spectrumData = GetSpectrumData();
|
||||
var points = new Vector3[SpectrumSize];
|
||||
for (int i = 0; i < SpectrumSize; i++)
|
||||
{
|
||||
var audioScale = Mathf.Pow(spectrumData[i] * AudioScale, Power);
|
||||
points[i] = new Vector3(i * 1.0f, audioScale, 0.0f);
|
||||
}
|
||||
lineRenderer.SetPositions(points);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user