Показать сообщение отдельно
Старый 11.11.2018, 11:56   #1
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 426
Написано 71 полезных сообщений
(для 104 пользователей)
Динамическое создание аудиосемпла (AudioClip) из кода

Пример динамического создания аудиосемпла из кода и его прослушивание.
В демосценах обычно вся музыка и звуки генерируются данным методом.
Для запуска просто повесить данный скрипт на камеру.

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();
    }
} 

Последний раз редактировалось Evgen, 11.11.2018 в 13:12.
(Offline)
 
Ответить с цитированием