public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool stream);
public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool stream, AudioClip.PCMReaderCallback pcmreadercallback);
public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool stream, AudioClip.PCMReaderCallback pcmreadercallback, AudioClip.PCMSetPositionCallback pcmsetpositioncallback);
Obsolete public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream);
Obsolete public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, AudioClip.PCMReaderCallback pcmreadercallback);
Obsolete public static AudioClip Create (string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, AudioClip.PCMReaderCallback pcmreadercallback, AudioClip.PCMSetPositionCallback pcmsetpositioncallback);

Parámetros

nameNombre del clip.
lengthSamplesCantidad de frames de muestra.
channelsCantidad de canales por frame.
frequencyFrecuencia de sample del clip.
_3DEl clip se reproduce en 3D
streamTrue is el clip se reproduce en streaming, esto es, si el pcmreadercallback genera datos sobre la marcha.
pcmreadercallbackEste callback es invocado para generat un bloque de datos de muestra. Los clips de tipo no-streaming (es decir, los que no se reproducen sobre la marcha) llaman a este callback solo una vez cuando se están creando, mientas que los clips de streaming lo llaman continuamente.
pcmsetpositioncallbackEste callback es invocado cuando el clip se reinicia o cambia de posición de reproducción.

Valor de retorno

AudioClip Una referencia al AudioClip creado

Descripción

Crea un AudioClip de usuario, con un nombre y con la duración determinada en los samples, canales y frecuencia.

Establece tus propios datos de audio con SetData. Use los delegados PCMReaderCallback y PCMSetPositicionCallback para obtener un callback cuando el clip lea datos y cambie de posición. Si stream es true (verdadero), Unity pedirá datos en pequeños trozos. Si es false (falso) todas los samples se leerán durante la creación.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public int position = 0; public int samplerate = 44100; public float frequency = 440;

void Start() { AudioClip myClip = AudioClip.Create("MySinusoid", samplerate * 2, 1, samplerate, true, OnAudioRead, OnAudioSetPosition); AudioSource aud = GetComponent<AudioSource>(); aud.clip = myClip; aud.Play(); }

void OnAudioRead(float[] data) { int count = 0; while (count < data.Length) { data[count] = Mathf.Sin(2 * Mathf.PI * frequency * position / samplerate); position++; count++; } }

void OnAudioSetPosition(int newPosition) { position = newPosition; } }