https://docs.unity3d.com/kr/530/ScriptReference/AudioSource.GetSpectrumData.html
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spectrum : MonoBehaviour
{
public AudioSource Audio; //스펙트럼 데이터로 만들 오디오 소스
GameObject[] SpectrumCube = new GameObject[64]; //스펙트럼을 시각적으로 보여줄 큐브 배열 64개 지정
float[] SpectrumData = new float[64]; //스펙트럼 데이터를 받을 배열 float 64개 지정
// Start is called before the first frame update
void Start()
{
// 반복문을 통해서 x축으로 1간격씩 나열된 큐브 64개 생성
for (int i = 0; i < 64; i++)
{
SpectrumCube[i] = GameObject.CreatePrimitive(PrimitiveType.Cube);
SpectrumCube[i].transform.position = new Vector3(i,0,0);
}
}
// Update is called once per frame
void Update()
{
//지정된 오디오 소스에서 실시간으로 스펙트럼 데이터 받아오기
SpectrumData = Audio.GetSpectrumData(64, 0, FFTWindow.Rectangular);
//받아온 스펙트럼 데이터를 큐브의 Scale y축 값에 대입하기
for (int i = 0; i < 64; i++)
{
SpectrumCube[i].transform.localScale = new Vector3(1, Mathf.Lerp(SpectrumCube[i].transform.localScale.y, SpectrumData[i]*100, 0.1f), 1);
}
}
}
'툴 > 유니티' 카테고리의 다른 글
Webgl에서 Canvas Button의 OnClick()기능으로 CursorLockMode제어 문제 (0) | 2021.11.12 |
---|---|
유니티 마이크 (3) | 2021.10.26 |
앱 이름 한글설정/국가별 설정 (0) | 2021.10.04 |
URP , HDRP에서 VideoPlayer의 Material Override문제 (0) | 2021.09.15 |
Webgl에서 Input Field 한글 입력 문제 (1) | 2021.09.14 |