お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。
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.
Closedata | オーディオデータを持つ float配列 |
channels | デリゲートに渡されたオーディオデータのチャネルの数を格納する int |
OnAudioFilterReadが実装されている場合、UnityはDSPチェーンにカスタムフィルタを挿入します。
フィルターはインスペクターに表示されているMonoBehaviourスクリプトと同じ順番で挿入されます。 OnAudioFilterReadは毎回呼ばれているオーディオのチャンクをフィルターに通すルートです。(これはサンプルレートやプラットフォームに応じて毎回 ~20msで頻繁に発生します。) オーディオデータは-1.0fから1.0fまでのfloat値の配列で、チェーンのフィルター前のオーディオ、またはAudioSourceのAudioClipを含みます。これがチェーンの最初のフィルタでオーディオソースがアタッチされていない場合、このフィルタはフィルタリングしたことになります。そうすれば手続き的にオーディオの生成を行い、オーディオクリップのようにフィルターを使用することができます。 OnAudioFilterReadが実装されている場合、VUメーターはサンプルレベルを出力を表示するためにインスペクターに表示されます。フィルターの処理時間も測定され、使用済みのミリ秒は次のVUメーターに表示されます。(ミキサーがオーディオデータを開始した時に、フィルタが多くの時間を費やしている場合、赤色に変わります) また、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; }