public AudioAsset CreateAudioAssetByPool(GameObject gameObject, bool is3D, AudioSourceType sourceType) { AudioAsset au = null; if (audioAssetsPool.Count > 0) { au = audioAssetsPool.Dequeue(); au.ResetData(); } else { au = new AudioAsset(); au.audioSource = gameObject.AddComponent <AudioSource>(); } au.audioSource.spatialBlend = is3D ? 1 : 0; au.sourceType = sourceType; if (sourceType == AudioSourceType.Music) { au.TotleVolume = musicVolume; } else { au.TotleVolume = sfxVolume; } return(au); }