Установить данные в клип.
Образцы должны быть типа float, в диапазоне от 0.0f до 1.0f (превышение этих пределов приведет к появлению артефактов и непредсказуемому поведению).
Количество сэмплов определяется длинной массива из чисел с плавающей запятой.
Используйте offsetSamples для записи в случайную позицию клипа. Если величина смещения превышает длину клипа, запить будет "обернута вокруг"
и записать оставшиеся образцы с начала клипа.
Заметьте, что для компрессированного аудио, данные могут быть установлены только когда "Load Type" принимает значение "Decompress on Load" в аудио импортере.
// Read all the samples from the clip and half the gain function Start () { var audio: AudioSource = GetComponent.<AudioSource>(); var samples = new float[audio.clip.samples * audio.clip.channels]; audio.clip.GetData(samples, 0); for (var i = 0; i < samples.Length; ++i) samples[i] = samples[i] * 0.5f; audio.clip.SetData(samples, 0); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { AudioSource audio = GetComponent<AudioSource>(); float[] samples = new float[audio.clip.samples * audio.clip.channels]; audio.clip.GetData(samples, 0); int i = 0; while (i < samples.Length) { samples[i] = samples[i] * 0.5F; ++i; } audio.clip.SetData(samples, 0); } }