[Решено] Визуализация звука в юнити
Добавлено: 12 окт 2019, 19:30
Нужна помощь в визуализация звука, если кому не сложно дайте скрипт.
У меня что-то не получается и одни ошибки выдаёт юнька.
У меня что-то не получается и одни ошибки выдаёт юнька.
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class VisualizerScript : MonoBehaviour {
public RectTransform[] visualizerObjects;
public float minHeight = 15.0f;
public float maxHeight = 425.0f;
public float updateSenstivity = 0.5f;
public Color visualizerColor = Color.gray;
[Space(15)]
public AudioClip audioClip;
public bool loop = true;
[Space(15), Range(64, 8192)]
public int visualizerSimples = 64;
AudioSource m_audioSource;
void Start()
{
if (audioClip)
return;
m_audioSource = new GameObject("AudioSource").AddComponent<AudioSource>();
m_audioSource.loop = loop;
m_audioSource.clip = audioClip;
m_audioSource.Play();
}
void Update()
{
float[] spectrumData = m_audioSource.GetSpectrumData(visualizerSimples, 0, FFTWindow.Rectangular);
for (int i = 0; i < visualizerObjects.Length; i++){
Vector2 newSize = visualizerObjects[i].GetComponent<RectTransform>().rect.size;
newSize.y = Mathf.Lerp(newSize.y, minHeight + (spectrumData[i] * (maxHeight - minHeight) * 0.5f), updateSenstivity);
visualizerObjects[i].GetComponent<RectTransform>().sizeDelta = newSize;
visualizerObjects[i].GetComponent<Image>().color = visualizerColor;
}
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class VisualizerScript : MonoBehaviour {
public RectTransform[] visualizerObjects;
public float minHeight = 15.0f;
public float maxHeight = 425.0f;
public float updateSenstivity = 0.5f;
public Color visualizerColor = Color.gray;
[Space(15)]
public AudioClip audioClip;
public bool loop = true;
[Space(15), Range(64, 8192)]
public int visualizerSimples = 64;
AudioSource m_audioSource;
void Start()
{
if (audioClip)
return;
m_audioSource = new GameObject("AudioSource").AddComponent<AudioSource>();
m_audioSource.loop = loop;
m_audioSource.clip = audioClip;
m_audioSource.Play();
}
void Update()
{
float[] spectrumData = m_audioSource.GetSpectrumData(visualizerSimples, 0, FFTWindow.Rectangular);
for (int i = 0; i < visualizerObjects.Length; i++){
Vector2 newSize = visualizerObjects[i].GetComponent<RectTransform>().rect.size;
newSize.y = Mathf.Lerp(newSize.y, minHeight + (spectrumData[i] * (maxHeight - minHeight) * 0.5f), updateSenstivity);
visualizerObjects[i].GetComponent<RectTransform>().sizeDelta = newSize;
visualizerObjects[i].GetComponent<Image>().color = visualizerColor;
}
}
}