public static int PlaySound(AudioSourceInfo info) { if (!isInit && info == null || info.Clip == null) { return(NULL_ID); } AudioSourceData asd; if (!ASDFree.TryGet(out asd)) { //CheckElements need return(NULL_ID); } InitAudioSourceData(asd, info); asd.pool = ASDFree; asd.IsPool = true; //asd.IsMusic = info.IsMusic; //ActiveIDs.Add(maxID); //countIDs++; //Debug.LogError("GetInstanceID=" + asd.AS.GetInstanceID()); ActiveElements.Add(asd); //if (asd.GO.name == "RUS_M1_D1_S1") Debug.Log("YES"); asd.AS.Play(0); if (CheckPause(asd.UnscaleTime)) { asd.AS.Pause(); } //if (!asd.UnscaleTime && (paused || deepPaused)) asd.AS.Pause(); return(asd.ID); }
void InitStatic() { //Debug.Log("InitStatic"); ActiveElements = new List <AudioSourceData>(DefaultCapacity); registeredElements = new List <AudioSourceData>(DefaultCapacity); //listInActiveElems = new List<OptimisePoolNode>(DefaultCapacity); Transform par = transform; #if UNITY_EDITOR //GameObject go = new GameObject("ROOT_AUDIO"); //if (go != null) par = go.transform; #endif ASDFree = new ObjectsPool <AudioSourceData>(new FactorySource(par).CreateElement, DefaultCapacity); ASDFree.TryGet(out musicAS); musicAS.AS.ignoreListenerVolume = true; musicAS.AS.spatialBlend = 0f; maxID = NULL_ID; paused = deepPaused = false; isInit = true; }