Пример динамического создания аудиосемпла из кода и его прослушивание.
В
демосценах обычно вся музыка и звуки генерируются данным методом.
Для запуска просто повесить данный скрипт на камеру.
using UnityEngine;
using System.Collections;
public class Main : MonoBehaviour {
public int samplerate = 44100;
public float freq = 440;
void Start() {
// Создаем пустой клип: 1000 семплов, 1 канал, сэплрейт 44100
AudioClip a = AudioClip.Create ("Аудио сэмпл", 1000, 1, samplerate, false);
// Подготавливаем массив
float[] samples = new float[a.samples * a.channels];
// Генерируем звук
for (int i=0; i<samples.Length; i++) {
samples [i] = Mathf.Sin (2 * Mathf.PI * freq * i / samplerate);
}
// Загружаем данные в AudioClip
a.SetData (samples, 0);
// Создаем новый AudioSource и подключаем его к Camera
AudioSource source = Camera.main.gameObject.AddComponent<AudioSource>();
// Присваиваем AudioSource наш клип
source.clip = a;
// Громкость звука=0.5
source.volume = 0.5f;
// Включить автоповтор
source.loop = true;
// Начать проигрывание
source.Play();
}
}