CRI ADX2(Unity)
初級編01 C# スクリプトから音を鳴らす
入門編では、エディタ上で音声を再生する方法を確認しました。
今回はスクリプトからサウンド制御を行います。
サウンド再生を制御するスクリプトを追加する
本テーマの学習用、サンプルコードを添付いたします。
下記からダウンロードしたソースコードを、Unityプロジェクト内にインポートしてください。
CuePlay.cs
「入門編04 音を鳴らす」でシーン上に追加した[CRI Atom Source]コンポーネントを持つGameObjectに、
以下の画像のようにスクリプトを追加します。
次に、[UI]→[Button]をシーンに追加します。
追加した[Button]のOnClickコールバックに、CuePlayクラスのPlaySound関数を設定します。
シーンを実行し、[Button]をクリックするとサウンドが再生されます。
多重に再生されないようにする
上記手順を踏むとサウンドは再生されますが、ボタンを押すごとに重ねて再生されてしまいます。
多重に再生されないように、スクリプトから制御してみましょう。
以下のようにADX2の状態を確認することで、再生中はサウンドを停止できます。
(中略)
public void PlayAndStopSound()
{
if (atomSrc != null) {
CriAtomSource.Status status = atomSrc.status;
if ((status == CriAtomSource.Status.Stop) || (status == CriAtomSource.Status.PlayEnd)) {
atomSrc.Play();
} else {
atomSrc.Stop();
}
}
}
(中略)
[Button]のOnClickコールバックを、CuePlayクラスのPlayAndStopSound関数に変更します。[Button]をクリックすると、再生中はサウンドが停止するようになりました!
Tips
CriAtomSourceの関数について
CriAtomSourceには再生制御用の関数が複数用意されています。
今回のチュートリアルでは以下の2つを利用しました。
- CriAtomSource::Play()
- CriAtomSource::Stop()
プラグインマニュアルにリファレンスがありますので、確認してみてください。
CriAtomSourceクラス