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