Exemplo n.º 1
0
    public AudioMixerGroup getMixerType(Audio_Type type)
    {
        AudioData datas;

        if (AudioDatas.TryGetValue(type, out datas))
        {
            return(datas.defaultMixerGroup);
        }

        return(null);
    }
Exemplo n.º 2
0
    /*
     * Hashtable parameters :
     *  loop : boolean
     *  delayed : boolean
     *  delayedtime : float
     *  priority : int
     *  volume : float
     *  pitch : float
     *  panStereo : float
     *  spatialBlend : float
     *  reverbZoneMix : float
     *  dopplerLevel : float
     *  spread : float
     *  rolloffMode : AudioRolloffMode
     *  minDistance : float
     *  maxDistance : float
     *  position : Vector3
     *  autoRelease : boolean
     *  starttime : float
     */
    public int playAudio(Audio_Type type, Hashtable param = null)
    {
        AudioSource source;
        int         key;

        if (GetSource(type, out source, out key))
        {
            if (param == null)
            {
                param = new Hashtable( );
            }

            bool delayed = param.ContainsKey("delayed") ? ( bool )param["delayed"] : false;

            source.loop          = param.ContainsKey("loop") ? ( bool )param["loop"] : false;
            source.priority      = param.ContainsKey("priority") ? ( int )param["priority"] : 128;
            source.volume        = param.ContainsKey("volume") ? ( float )param["volume"] : 1.0f;
            source.pitch         = param.ContainsKey("pitch") ? ( float )param["pitch"] : 1.0f;
            source.panStereo     = param.ContainsKey("panStereo") ? ( float )param["panStereo"] : .0f;
            source.spatialBlend  = param.ContainsKey("spatialBlend") ? ( float )param["spatialBlend"] : .0f;
            source.reverbZoneMix = param.ContainsKey("reverbZoneMix") ? ( float )param["reverbZoneMix"] : .45f;
            source.dopplerLevel  = param.ContainsKey("dopplerLevel") ? ( float )param["dopplerLevel"] : 1.0f;
            source.spread        = param.ContainsKey("spread") ? ( float )param["spread"] : .0f;
            source.rolloffMode   = param.ContainsKey("rolloffMode") ? ( AudioRolloffMode )param["rolloffMode"] : AudioRolloffMode.Logarithmic;
            source.minDistance   = param.ContainsKey("minDistance") ? ( float )param["minDistance"] : 1.0f;
            source.maxDistance   = param.ContainsKey("maxDistance") ? ( float )param["maxDistance"] : 500.0f;

            source.transform.position = param.ContainsKey("position") ? ( Vector3 )param["position"] : Vector3.zero;
            source.time = param.ContainsKey("starttime") ? (float)param["starttime"] : .0f;

            float time = param.ContainsKey("delayedtime") ? ( float )param["delayedtime"] : .0f;
            if (delayed)
            {
                source.PlayDelayed(time);
            }
            else
            {
                source.Play( );
            }

            if (!source.loop && param.ContainsKey("autoRelease") ? ( bool )param["autoRelease"] : true)
            {
                StartCoroutine(autoRelease(key, time));
            }
        }
        else
        {
            Destroy(source);
        }

        return(key);
    }
Exemplo n.º 3
0
    public void registerAudioData(Audio_Type type, AudioData data)
    {
        //if (AudioDatas == null)
        //    AudioDatas = new Dictionary<Audio_Type, AudioData>();

        if (!AudioDatas.ContainsKey(type))
        {
            AudioDatas.Add(type, data);
        }

        if (type == Audio_Type.MenuMusic)
        {
            GameManager.Instance.PlayMenuMusic();
        }
    }
Exemplo n.º 4
0
    private bool GetSource(Audio_Type type, out AudioSource source, out int key)
    {
        AudioData data;

        if (AudioDatas.TryGetValue(type, out data))
        {
            AudioPSource psource;
            if (AudioPool.GetAvailable(true, out psource))
            {
                key = 0;
                while (AudioPlaying.ContainsKey(key))
                {
                    key++;
                }

                AudioPlaying.Add(key, psource);

                source = psource.audio_source;

                source.clip = data.getClip( );

                if (data.defaultMixerGroup != null)
                {
                    source.outputAudioMixerGroup = data.defaultMixerGroup;
                }
                else
                {
                    source.outputAudioMixerGroup = masterMixerGroup;
                }

                return(true);
            }
            else
            {
                Destroy(psource);
            }
        }
        else
        {
            Destroy(data);
        }

        source = new AudioSource( );
        key    = -1;

        return(false);
    }
Exemplo n.º 5
0
 public void registerAudioData(Audio_Type type, AudioData data)
 {
     AudioDatas.Add(type, data);
 }
Exemplo n.º 6
0
 public void playAudio(Audio_Type type)
 {
     AudioSource source;
     AudioDatas[type].getClip();
     int key;
 }