Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class AudioVisualizer : MonoBehaviour
- {
- #region --------------------------------------- Private variables ---------------------------------------
- #region SerializeField
- [SerializeField] private GameObject musicCubePrefab = null;
- [SerializeField] private float maxScale;
- #endregion
- #region Non-SerializeField
- private int numOfSamples = 0;
- private GameObject[] _allTheCubes = null;
- #endregion
- #endregion ---------------------------------------
- #region ---------------------------- Private Methods ----------------------------
- #region -------------- Monobehaviour --------------
- private void Start()
- {
- numOfSamples = AudioPeer.numberOfSamples;
- _allTheCubes = new GameObject[numOfSamples];
- Debug.Log("num samples = " + numOfSamples);
- // num of samples is 512
- for (int i = 0; i < numOfSamples; i++)
- {
- GameObject musicCubeInstance = Instantiate(musicCubePrefab);
- musicCubeInstance.transform.position = this.transform.position;
- musicCubeInstance.transform.parent = this.gameObject.transform;
- musicCubeInstance.name = "SampleMusicCube_" + i;
- this.transform.eulerAngles = new Vector3(0, -0.703f * i, 0); // 360/512 = 0.703
- musicCubeInstance.transform.position = Vector3.forward * 300;
- _allTheCubes[i] = musicCubeInstance;
- }
- }
- private void Update()
- {
- for (int i = 0; i < numOfSamples; i++)
- {
- if (_allTheCubes != null)
- {
- _allTheCubes[i].transform.localScale = new Vector3(2.5f, AudioPeer.samples[i] * maxScale, 2.5f);
- }
- }
- }
- #endregion ----------------------------
- #endregion ----------------------------
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement