/// <summary> 指定した <see cref="ClipIndex"/> に対応した
    /// <see cref="AudioClip"/> を使って再生する </summary>
    /// <param name="volume"> 音量(0.0 ~ 1.0) </param>
    /// <param name="isLoop"> true = ループ再生を許可 </param>
    public void Play(ClipIndex index, float volume, bool isLoop)
    {
        // まだ割り当てられていなければ割り当てる
        if (!source)
        {
            Bind();
        }

        // AudioSource の取得を試みる
        AudioSource freeSource = null;
        var         result     = source.GetSource(out freeSource);

        if (!result && isAdditive)
        {
            freeSource = source.AddSource();
        }

        // 取得できなければ何もしない
        if (!freeSource)
        {
            return;
        }

        freeSource.clip   = index.GetClip();
        freeSource.volume = volume;
        freeSource.loop   = isLoop;
        freeSource.Play();

        // 自身の状態を利用して解放処理を開始する
        AutoRelease(_autoRelease);
    }
示例#2
0
 /// <summary> 指定したクリップを再生、その再生が終了するまでコルーチンを停止 </summary>
 protected IEnumerator WaitForEndOfSE(ClipIndex clip)
 {
     audio.Play(clip);
     while (audio.source.IsPlaying())
     {
         yield return(null);
     }
 }
 /// <summary> 指定した <see cref="ClipIndex"/> に対応した
 /// <see cref="AudioClip"/> を使って再生する
 /// <para> 音量は最大、ループ再生はしない </para></summary>
 public void Play(ClipIndex index)
 {
     Play(index, 1f, false);
 }
 /// <summary> 指定した <see cref="ClipIndex"/> に対応した
 /// <see cref="AudioClip"/> を使って再生する
 /// <para> 音量は最大設定にする </para></summary>
 /// <param name="isLoop"> true = ループ再生を許可 </param>
 public void Play(ClipIndex index, bool isLoop)
 {
     Play(index, 1f, isLoop);
 }
 /// <summary> 指定した <see cref="ClipIndex"/> に対応した
 /// <see cref="AudioClip"/> を使って再生する
 /// <para> ループ再生はしない </para></summary>
 /// <param name="volume"> 音量(0.0 ~ 1.0) </param>
 public void Play(ClipIndex index, float volume)
 {
     Play(index, volume, false);
 }
示例#6
0
 /// <summary> 同じ名前の <see cref="AudioClip"/> を取得 </summary>
 public static AudioClip GetClip(this ClipIndex index)
 {
     return(_clips.First(clip => Regex.IsMatch(clip.name, index.clipName)));
 }