forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Уроки (http://forum.boolean.name/forumdisplay.php?f=145)
-   -   Динамическое создание аудиосемпла (AudioClip) из кода (http://forum.boolean.name/showthread.php?t=20743)

Evgen 11.11.2018 11:56

Динамическое создание аудиосемпла (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();
    }
} 



Часовой пояс GMT +4, время: 21:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot