Version: 2019.2
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);

Parameters

nameName of clip.
lengthSamplesNumber of sample frames.
channelsNumber of channels per frame.
frequencyЧастота семпла. (Read Only)
_3DAudio clip is played back in 3D.
streamTrue if clip is streamed, that is if the pcmreadercallback generates data on the fly.
pcmreadercallbackThis callback is invoked to generate a block of sample data. Non-streamed clips call this only once at creation time while streamed clips call this continuously.
pcmsetpositioncallbackThis callback is invoked whenever the clip loops or changes playback position.

Returns

AudioClip A reference to the created AudioClip.

Description

Создаёт пользовательский AudioClip с данным именем, длинной (в сэмплах), каналами и частотой.

Если поток true, Unity по требованию будет читать данные небольшими порциями. Если false, все образцы будут считываться во время создания.

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; } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961