private PoolableAudioSource GetTargetSource(Transform target) { PoolableAudioSource source = null; List <PoolableAudioSource> sources = new List <PoolableAudioSource>();; if (playingCache.ContainsKey(target)) { sources = playingCache[target]; foreach (var poolableAudioSource in sources) { if (poolableAudioSource != null && !poolableAudioSource.IsPlaying) { source = poolableAudioSource; break; } } } // Equals operator is overriden! will return true if audio source pool is not active! if (source == null) { source = objectPooler.GetNextObject <PoolableAudioSource>(parent: target); sources.Add(source); source.onReturnToPool += OnPoolableAudioSourceReturned; } playingCache[target] = sources; return(source); }
PoolableAudioSource GetSourceWithClip(AudioClip clip) { PoolableAudioSource returnSource = null; if (activeClips.ContainsKey(clip)) { returnSource = activeClips[clip]; } return(returnSource); }
PoolableAudioSource CreateNewPoolSource() { #if DEBUG_AUDIO Debug.Log("Creating new Audio Pool Source"); #endif var returnSource = new PoolableAudioSource(); var go = new GameObject("PooledAudioSource " + (audioSourcePool.Count + 1)); var source = go.AddComponent <AudioSource>(); go.transform.parent = Camera.main.transform; go.transform.localPosition = Vector3.zero; returnSource.go = go; returnSource.source = source; audioSourcePool.Add(returnSource); return(returnSource); }
public void loadClip(ref PoolableAudioSource aus) { if(type.Equals(Type.Rand)){ aus.gameobject.GetComponent<AudioSource> ().clip = clips[(int)(Random.value*clips.Count)]; } else{ if(type.Equals(Type.List)){ aus.gameobject.GetComponent<AudioSource> ().clip = clips[(cpt++)%clips.Count]; } else{ aus.gameobject.GetComponent<AudioSource> ().clip = clips[0]; } } aus.gameobject.GetComponent<AudioSource> ().loop =type.Equals(Type.Loop); aus.gameobject.GetComponent<AudioSource> ().pitch = Random.value * (maxPitch - minPitch) + minPitch; aus.gameobject.GetComponent<AudioSource> ().outputAudioMixerGroup = group; }
void InitPool() { #if DEBUG_AUDIO Debug.Log("Initializing Audio Pool"); #endif CleanPool(); audioSourcePool = new List <PoolableAudioSource>(initialPoolSize); activeClips = new Dictionary <AudioClip, PoolableAudioSource>(); for (int i = 1; i <= initialPoolSize; i++) { var newPoolSource = new PoolableAudioSource(); var go = new GameObject("PooledAudioSource " + i); var source = go.AddComponent <AudioSource>(); go.transform.parent = Camera.main.transform; go.transform.localPosition = Vector3.zero; newPoolSource.go = go; newPoolSource.source = source; audioSourcePool.Add(newPoolSource); } }
void Start() { alarm=AudioManager.getInstance ().loadAudio ("Alarm", Camera.main.transform.position); alarm.gameobject.GetComponent<AudioSource> ().Play (); currentTurret = laser; start = System.DateTime.Now; aStar=new AStar<Hexagone>(); grille = new Grille (); for(int i = -9;i<10;i++){ for(int j=-9;j<10;j++){ grille.AddHexa(new Hexagone(grille,i,j,obj)); } } startH = grille.GetHexa (startX, startY); endH = grille.GetHexa (endX, endY); endCollider.gameObject.transform.position = endH.centre () + new Vector3 (0f, 0.5f, 0.0f); ennemi.transform.localScale= new Vector3 (0.5f, 0.5f, 0.5f); ennemies=new Pool<Ennemi>(new Ennemi(ennemi,startH,endH,ennemiLife)); grille.UpdateColor (); updatePath (); }