예제 #1
0
    public void StopAllAudioSourceOfType(AUDIO_SOURCE_TYPE audioSourceType)
    {
        switch (audioSourceType)
        {
        case AUDIO_SOURCE_TYPE.MUSIC:
            foreach (AudioSourceController audioSourceController in activeMusicAudioSourceControllers)
            {
                audioSourceController.StopClip();
            }
            break;

        case AUDIO_SOURCE_TYPE.SOUND_EFFECT:
            foreach (AudioSourceController audioSourceController in activeSoundEffectAudioSourceControllers)
            {
                audioSourceController.StopClip();
            }
            break;

        case AUDIO_SOURCE_TYPE.DIALOGUE:
            foreach (AudioSourceController audioSourceController in activeDialogueAudioSourceControllers)
            {
                audioSourceController.StopClip();
            }
            break;
        }
    }
예제 #2
0
    private AudioSourceController ReturnNewAudioSourceController(AUDIO_SOURCE_TYPE audioSourceType)
    {
        GameObject            newAudioSource           = null;
        AudioSourceController newAudioSourceController = null;

        switch (audioSourceType)
        {
        case AUDIO_SOURCE_TYPE.MUSIC:
            newAudioSource = ObjectPooler.Instance.CreateObjectFromPool_Reuseable("MusicAudioSource", Vector3.zero, Quaternion.identity);
            break;

        case AUDIO_SOURCE_TYPE.SOUND_EFFECT:
            newAudioSource = ObjectPooler.Instance.CreateObjectFromPool_Reuseable("SoundEffectAudioSource", Vector3.zero, Quaternion.identity);

            break;

        case AUDIO_SOURCE_TYPE.DIALOGUE:
            newAudioSource = ObjectPooler.Instance.CreateObjectFromPool_Reuseable("DialogueAudioSource", Vector3.zero, Quaternion.identity);
            break;
        }

        newAudioSourceController = newAudioSource.GetComponent <AudioSourceController>();

        return(newAudioSourceController);
    }
예제 #3
0
    private string ReturnAudioSourceNameType(AUDIO_SOURCE_TYPE audioSourceType)
    {
        string sourceNameType = "";

        switch (audioSourceType)
        {
        case AUDIO_SOURCE_TYPE.MUSIC:
            sourceNameType = "MusicAudioSource";
            break;

        case AUDIO_SOURCE_TYPE.SOUND_EFFECT:
            sourceNameType = "SoundEffectAudioSource";
            break;

        case AUDIO_SOURCE_TYPE.DIALOGUE:
            sourceNameType = "DialogueAudioSource";
            break;

        default:
            Debug.LogError("Incorrect Parameter passed in ReturnAudioSourceTypeName, was :: " + audioSourceType);
            break;
        }

        return(sourceNameType);
    }
예제 #4
0
    public void LoadNewAudioData(AUDIO_SOURCE_TYPE targetAudioSourceType, AudioClip targetAudioClip)
    {
        if (targetAudioClip != null)
        {
            audioSourceType = targetAudioSourceType;

            targetAudio = targetAudioClip;
        }
    }
예제 #5
0
    public void RequestNewAudioSource(AUDIO_SOURCE_TYPE audioSourceType, AudioClip targetAudioClip)
    {
        if (targetAudioClip != null)
        {
            AudioSourceController newAudioSourceController = ReturnNewAudioSourceController(audioSourceType);

            newAudioSourceController.LoadNewAudioData(audioSourceType, targetAudioClip);

            newAudioSourceController.StartClip();

            AddNewActiveAudioSource(newAudioSourceController);
        }
    }
예제 #6
0
    public AudioClip GetRandomClip(AUDIO_SOURCE_TYPE type)
    {
        switch (type)
        {
        case AUDIO_SOURCE_TYPE.GLASS:
            if (glassCollection == null)
            {
                goto default;
            }
            return(GetRandomClip(glassCollection));

        case AUDIO_SOURCE_TYPE.WOOD:
            if (woodCollection == null)
            {
                goto default;
            }
            return(GetRandomClip(woodCollection));

        case AUDIO_SOURCE_TYPE.KRIMSKRAMS:
            if (krimskramsCollection == null)
            {
                goto default;
            }
            return(GetRandomClip(krimskramsCollection));

        case AUDIO_SOURCE_TYPE.PAPER:
            if (paperCollection == null)
            {
                goto default;
            }
            return(GetRandomClip(paperCollection));

        case AUDIO_SOURCE_TYPE.METAL:
            if (metalCollection == null)
            {
                goto default;
            }
            return(GetRandomClip(metalCollection));

        default:
            return(GetRandomClip());
        }
    }
예제 #7
0
    public void StopClip()
    {
        if (targetAudio != null)
        {
            audioSourceState = AUDIO_SOURCE_STATE.WAITING;

            targetAudioSource.Stop();

            targetAudioSource.clip = null;

            targetAudio = null;

            audioSourceType = AUDIO_SOURCE_TYPE.NONE;

            AudioManager.Instance.RemoveActiveAudioSource(this);

            ObjectPooler.Instance.ReturnObjectToQueue(audioSourceNameType, gameObject);

            audioSourceNameType = string.Empty;
        }
    }