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クラス

author:我妻