//---------------------------------------------------------------------- // Get States //---------------------------------------------------------------------- public AudioSourceState GetNext() { ++_head; if (_head >= _pool.Count) { _head = 0; } currentSourceState = _pool[_head]; return(currentSourceState); }
public void Init(GameObject gameObject, string objectName, int numPool) { for (int i = 0; i < numPool; ++i) { var sourceObj = new GameObject($"{objectName} ({i + 1})"); sourceObj.transform.SetParent(gameObject.transform); var audioSource = sourceObj.AddComponent <AudioSource>(); audioSource.playOnAwake = false; audioSource.dopplerLevel = 0; // ToDo : カスタム可能にする var audioState = new AudioSourceState() { gameObject = sourceObj, source = audioSource, }; _pool.Add(audioState); } }