// Intervalで垂れ流す処理
IObservable<long> PlaySeObservable(double _time)
{
return Observable.Interval(TimeSpan.FromSeconds(_time));
}
音の再生のくわしいやり方とかは、
他で調べてね
[SerializeField]
private AudioClip audioClip;
[SerializeField]
private AudioSource audioSource;
void Start()
{
float seTime = audioClip.length;
PlaySeObservable(seTime).Subscribe(_ => {
// 垂れ流せ!
audioSource.PlayOneShot(audioClip);
});
}
ずっと垂れ流しでうるせぇなぁと思うので、
bool flag;
IObservable<long> PlaySeObservable(double _time)
{
return Observable.Interval(TimeSpan.FromSeconds(_time)).TakeWhile(_ => !flag);
}
なんかのフラグをTrueにしたら、とめるようにする
// onclickのEventとか
public void OnClick(){
// 止まれ
flag = true;
}
しかしながら、
ループ再生したいなら、
AudioSourceコンポーネントのloopオプションにチェックいれて、
ループ設定すればいいだけですね