Объявление
public bool SetData(float[] data, int offsetSamples);Описание
Установите образец данных в клипе.
Выборки должны быть с плавающей запятой в диапазоне от -1,0f до 1,0f (превышение этих ограничений приведет к артефактам и неопределенному поведению). Количество выборок определяется длиной массива с плавающей запятой. Используйте offsetSamples для записи в случайное место в клипе. Если длина от смещения больше, чем длина клипа, запись будет повторяться и записывать оставшиеся сэмплы с начала клипа.
Обратите внимание, что для сжатого аудио образец данных можно установить, только если для параметра Тип загрузки установлено значение Распаковывать при загрузке в средстве импорта аудио.
using UnityEngine;
public class Example : MonoBehaviour
{
// Читаем все сэмплы из клипа и половину усиления
void Start()
{
AudioSource audioSource = GetComponent<AudioSource>();
float[] samples = new float[audioSource.clip.samples * audioSource.clip.channels];
audioSource.clip.GetData(samples, 0);
for (int i = 0; i < samples.Length; ++i)
{
samples[i] = samples[i] * 0.5f;
}
audioSource.clip.SetData(samples, 0);
}
}