Динамическое создание аудиосемпла (AudioClip) из кода
Пример динамического создания аудиосемпла из кода и его прослушивание.
В демосценах обычно вся музыка и звуки генерируются данным методом.
Для запуска просто повесить данный скрипт на камеру.
PHP код:
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(); } }
|