public void QuantizePlay(SoundSeting.Type type, Vector3 position, float endTime = 0f) { var source = _pool.Rent(); var query = _setting.ses.Where(p => p.type == type); if (query.Any()) { bool isStop = false; if (endTime > 0) { isStop = true; } _playSources.Add(source); source.Play(query.First(), position, false); //Music.QuantizePlay (source.source); if (isStop) { StartCoroutine(QuantizePlayCoroutine(source, endTime)); } else { StartCoroutine(QuantizePlayCoroutine(source, source.source.clip.length)); } } }
public void Stop(SoundSeting.Type type) { foreach (var one in _playSources) { if (one != null && one.se.type == type) { one.Stop(); break; } } }
void PreLoad(SoundSeting.Type type) { var source = _pool.Rent(); var query = _setting.ses.Where(p => p.type == type); if (query.Any()) { source.PreLoad(query.First().clip); _pool.Return(source); } }
public void Play(SoundSeting.Type type, Vector3 position, float loopTime = 0f) { var source = _pool.Rent(); var query = _setting.ses.Where(p => p.type == type); if (query.Any()) { bool isLoop = false; if (loopTime > 0) { isLoop = true; } _playSources.Add(source); source.Play(query.First(), position, isLoop); if (isLoop) { StartCoroutine(StopLoopCoroutine(source, loopTime)); } StartCoroutine(WaitPlayCoroutine(source)); } }