Version: 5.3 (switch to 5.4b)
언어English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

MonoBehaviour.OnAudioFilterRead(float[], int)

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

닫기

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

닫기

취소

Switch to Manual

파라미터

data An array of floats comprising the audio data.
channels An int that stores the number of channels of audio data passed to this delegate.

Description

OnAudioFilterRead가 수행될 때, 유니티는 오디오 DSP chain에 커스텀 필터(custom filter)를 삽입합니다.

필터는 인스펙터에 보이는 MonoBehaviour 스크립트의 순서와 같은 순서로 삽입됩니다.

OnAudioFilterRead는 오디오 청크(chunk)가 해당 필터에 통과될 때마다 호출됩니다. (이 경우는 샘플율과 플랫폼에 따라 ~20ms 마다 발생합니다.) 오디오 데이터는 [-1.0f;1.0f]의 범위를 갖는 float형 배열이고, chain안에 이전 필터의 오디오를 포함하거나 AudioSource상의 오디오클립을 포함합니다. 해당 필터가 chain의 첫번째 필터이고 오디오소스에 클립이 첨부되어 있지 않은 경우에, 이 필터가 '재생'됩니다. 이 경우에 해당 필터를 오디오 클립으로 사용할 수 있고, 오디오를 생성할 수 있습니다.

OnAudioFilterRead가 수행되면, 나가는 샘플 레벨을 보여주는 VU meter가 인스펙터에서 나타납니다. 필터의 진행 시간이 측정되고, 지나간 milliseconds가, 다음 VU meter에 나타납니다. (해당 필터가 너무 오래 시간이 걸려서 믹서에서 오디오 데이터를 받지 못하는 경우, 빨간색으로 바뀝니다.) OnAudioFilterRead는 메인 쓰레드(즉, 오디오 쓰레드)와 다른 쓰레드상에서도 호출되기 때문에, 이 함수에서 메인 Unity 함수를 호출하는 것은 허용되지 않습니다 (경고가 나타나게 됩니다).

See Also: Audio Filters.

	// This custom filter controls the gain by filtering the samples by multiplying each sample with a <i>gain</i> parameter.  

public var gain : float;

function OnAudioFilterRead(var data:float[], var channels:int) { for (var i = 0; i < data.Length; ++i) data[i] = data[i] * gain; }