То, что вы, вероятно, ищете, это отображение общей амплитуды аудиоданных, которые вы получаете.Однако данные, которые вы получаете из Unity с помощью GetSpectrumData, представляют собой массив, показывающий амплитуду на множестве разных частот.Чтобы найти подходящую «общую» амплитуду, вы можете либо усреднить, найти максимальное значение или суммировать содержимое этого массива, а затем использовать это новое значение для рисования вашей визуализации.Я бы, вероятно, пошел с поиском максимума, то есть самого высокого / самого громкого значения в массиве.Вы можете сделать это с помощью Linq:
using System.Linq;
/*...*/
float loudest = yourSpectrumDataArray.Max();
Обратите также внимание, что значения амплитуды, которые вы получаете из GetSpectrumData, являются tiiiiny, и вы можете преобразовать их в значения в децибелах, прежде чем работать с ними.Я использую это уравнение - не могу вспомнить, где я его нашел, но оно работает для меня:
public float AmplitudeToDB(float value)
{
return 20.0f * Mathf.Log10(value / 2.5f + 1.5849e-13f);
}