クリップからサンプルデータの配列を取得します。
サンプルは-1.0fから1.0fまでのfloat値です。サンプルの数はfloat配列の長さによって決定されます。 クリップのランダムな位置から読み込みを開始する場合はoffsetSamplesを使用してください。もしクリップの長さよりもオフセットから見た読み込みの長さが大きい場合、 読み込みは一巡し、残りをクリップのスタート位置からサンプリングを行います。 圧縮されたオーディオファイル、 オーディオインポーターで Load Type が Decompress on Load に設定されている時、サンプルデータを引き出すのみしか出来ないことに注意してください。もしこれがそうでない場合、配列は全てのサンプル値を0として返すことになります。
// Read all the samples from the clip and half the gain function Start () { var samples = new float[audio.clip.samples * audio.clip.channels]; audio.clip.GetData(samples, 0); for (var i = 0; i < samples.Length; ++i) samples[i] = samples[i] * 0.5f; audio.clip.SetData(samples, 0); }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Start() { float[] samples = new float[audio.clip.samples * audio.clip.channels]; audio.clip.GetData(samples, 0); int i = 0; while (i < samples.Length) { samples[i] = samples[i] * 0.5F; ++i; } audio.clip.SetData(samples, 0); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def Start() as void: samples as (float) = array[of float]((audio.clip.samples * audio.clip.channels)) audio.clip.GetData(samples, 0) i as int = 0 while i < samples.Length: samples[i] = (samples[i] * 0.5F) ++i audio.clip.SetData(samples, 0)