AudioSourceの再生が終わったかどうかを取得する方法(が見つからない...)
表題の件ですが、結局いまのところ解決していません。
AudioSourceクラスにはisPlayingというプロパティがあります。一番最初に思いつくのは、これがfalseになったら再生が終わったと判断するという手です。
しかし、これには落とし穴があって、Pause()を呼ぶとisPlayingがfalseになるのでPauseしているのと、再生が終わっているのとを区別できません。
次にtimeというプロパティを見るという手があります。こちらが0になっていたら再生が終わったと判断するという手です。
しかし、AudioSourceをPlay()した直後はtimeが0なので、これも誤作動してしまいます。
最後に、上記を併用するという手があります。
public static bool IsFinished( this AudioSource audio ) { return audio.time == 0.0f && !audio.isPlaying; }
このような判定です。
しかし、これもうまくいかないことがあります。Play()した直後にPause()すると、timeは0だしisPlayingはfalseなので再生終了したと判定されてしまうのです。
結局、今のところ良い方法は思いついておりません。再生終了したタイミングでcallbackを呼ぶような仕組みを作りたかったのですが...
何か良い案があればご教授お願い致します。
追記
Pauseせず再生状態のままピッチを0.0fにすればいけるとコメントで頂きました。ありがとうございます。