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);
    }
Example #2
0
    PoolableAudioSource GetSourceWithClip(AudioClip clip)
    {
        PoolableAudioSource returnSource = null;

        if (activeClips.ContainsKey(clip))
        {
            returnSource = activeClips[clip];
        }

        return(returnSource);
    }
Example #3
0
    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);
    }
Example #4
0
    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;
    }
Example #5
0
    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);
        }
    }
Example #6
0
    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 ();
    }