Example #1
0
    // サウンドを鳴らす
    AudioChannelData playSound(AUDIO_TYPE _eAudioType, string _strName, bool _bLoop = false)
    {
        _strName = _strName.ToLower();

        bool             bHit = false;
        AudioChannelData data = new AudioChannelData();

        bHit = getEnableChannnel(_eAudioType, ref data);

        if (bHit == true)
        {
            data.m_strFilename = _strName;
            data.m_bLoop       = _bLoop;
            data.m_eStatus     = AudioChannelData.STATUS.REQUEST;
        }
        else
        {
            Debug.LogError("no hit");
            return(data);
        }

        AudioClipData audioClipData = new AudioClipData();

        if (false == IsAudioClipData(_strName, _eAudioType, ref audioClipData))
        {
            //Debug.LogError ( "audio_type=" +_eAudioType + " " + "playSound:" + _strName);
            return(m_csSoundPlayerSupport.PlaySound(data));
        }

        //Debug.Log ("audio_type:" + _eAudioType + " playSound:" + data.m_strFilename);

        data.Play(audioClipData);
        return(data);
    }
 void PlaySound(AUDIO_TYPE type)
 {
     audioSrc.clip = audioClip [(int)type];
     audioSrc.Play();
     //audioSrc.PlayOneShot (audioClip [(int)type]);
     //Debug.Log("PlaySound");
 }
Example #3
0
    // 空いているチャンネルを返す
    private bool getEnableChannnel(AUDIO_TYPE _eAudioType, ref AudioChannelData _channelData)
    {
        bool bRet = false;

        //Debug.Log ("m_tAudioChannnelDataList.Length=" + m_tAudioChannnelDataList.Length.ToString () + " _eAudioType=" + _eAudioType.ToString ());

        foreach (AudioChannelData data in m_tAudioChannnelDataList[(int)_eAudioType])
        {
            //Debug.Log (data.m_eStatus.ToString() + ":" + data.m_strFilename );

            if (data.m_eStatus == AudioChannelData.STATUS.IDLE)
            {
                bRet = true;
            }
            else if (data.m_eStatus == AudioChannelData.STATUS.PLAYING && !data.m_tAudioSource.isPlaying)
            {
                bRet = true;
            }
            else
            {
            }

            if (bRet == true)
            {
                _channelData = data;
                break;
            }
        }
        return(bRet);
    }
Example #4
0
 public AudioClipData(AUDIO_TYPE _eAudioType, string _strPath, string _strName, AudioClip _audioClip)
 {
     m_eAudioType = _eAudioType;
     m_strPath    = _strPath;
     m_strName    = _strName;
     m_AudioClip  = _audioClip;
     return;
 }
Example #5
0
    public AudioChannelData(AUDIO_TYPE _eAudioType, AudioSource _tAudioSource)
    {
        m_tAudioClipData = new AudioClipData();

        m_eStatus      = STATUS.IDLE;
        m_tAudioSource = _tAudioSource;
        m_eAudioType   = _eAudioType;
    }
Example #6
0
    public void GradVolumeFromCurrent(AUDIO_TYPE type, float target, float period)
    {
        var list = audioEntities.FindAll((AudioEntity e) => { return(e.audioType == type); });

        foreach (var e in list)
        {
            e.SetGradVolume(e.currentVolume, target, period);
        }
    }
Example #7
0
    // 音量調節
    public void SetVolume(AUDIO_TYPE type, float volume)
    {
        var list = audioEntities.FindAll((AudioEntity e) => { return(e.audioType == type); });

        foreach (var e in list)
        {
            e.currentVolume = volume;
        }
    }
Example #8
0
 public AudioEntity(AudioClip clip, GameObject manager, AUDIO_TYPE t)
 {
     gameObject                  = new GameObject(clip.name);
     audioSource                 = gameObject.AddComponent <AudioSource>();
     audioSource.clip            = clip;
     gameObject.transform.parent = manager.transform;
     audioType = t;
     ResetSetting();
     SetMixerGroup();
 }
Example #9
0
    // Get AudioManager
    public AudioManager GetAudioManagerByType(AUDIO_TYPE type)
    {
        if (CheckIfExist(type))
        {
            return(audioList[type]);
        }

        Debug.Log("No Such Type Inputted : " + type + " Please Do Not use the last variable");
        return(null);
    }
Example #10
0
    // para0: 再生する音源データのaudioClips中の0から始まる番号。
    // para1: 再生オプション。 型のコメントを参照。
    // para2: ループ再生するか。
    // para3: 音源のタイプ(BGM or SE or 未分別) <= これ正直よくなかった。曲と種類の相関表を作るべきでした。
    // para4: 音源の再生開始位置(秒)
    // para5: 再生開始の遅延(秒)。
    // デフォルトの音量は最大です。*当然ですが、各種Mixerによる影響は受けます。
    public void Play(int index, PLAY_OPTION option, bool isLoop = false, AUDIO_TYPE type = AUDIO_TYPE.NON_CATEGORIZED, float startSec = 0.0f, float delay = 0.0f)
    {
        if (option == PLAY_OPTION.CONTINUOUS)
        { // 指定された音源が再生中かチェック
            AudioEntity entity = audioEntities.Find(x => { return(x.audioName == audioClips[index].name); });

            if (entity != null)
            {
                if (entity.isPlaying)
                {
                    Debug.Log("Already played. The option type is CONTINUOUS: audio name is " + audioClips[index].name + ".");
                    return;
                }
                else
                {
                    entity.Play(delay);
                }
                return;
            }
        }
        else if (option == PLAY_OPTION.RESTART)
        {
            AudioEntity entity = audioEntities.Find(x => { return(x.audioName == audioClips[index].name); });

            if (entity != null)
            {
                if (entity.isPlaying)
                {
                    entity.time = 0.0f;
                    entity.Play(delay);
                    return;
                }
            }
        }
        else //  PLAY_OPTION::ADDITIVE
        {
            AudioEntity entity = audioEntities.Find(x => { return(x.audioName == audioClips[index].name); });

            if (entity != null)
            {
                if (!entity.isPlaying)
                {
                    // 既に確保されたAudioSourceを再利用する。
                    entity.time = 0.0f;
                    entity.ResetSetting();
                    entity.Play(delay);
                    return;
                }
            }
        }

        // 新たにAudio Sourceを生成して、再生する。
        PlayNewAudio(index, isLoop, type, delay);
    }
 public void PlayAudio(AUDIO_TYPE _t, Vector3 pos) //3d
 {
     for (int i = 0; i < audios.Length; i++)
     {
         if (audios[i].type == _t)
         {
             g_audio[i].PlayOneShot(audios[i].clip);
             g_audio[i].transform.position = pos;
             break;
         }
     }
 }
Example #12
0
    private void PlayNewAudio(int index, bool isLoop = false, AUDIO_TYPE type = AUDIO_TYPE.NON_CATEGORIZED, float startSec = 0.0f, float delay = 0.0f)
    {
        // AudioEntityを生成する。
        AudioEntity entity = new AudioEntity(audioClips[index], gameObject, type);

        audioEntities.Add(entity); // 子にAudio Source Componentを持たせて、参照を保持しておく。

        int endId = audioEntities.Count - 1;

        audioEntities[endId].isLoop = isLoop;
        audioEntities[endId].time   = startSec;

        audioEntities[endId].Play(delay);
    }
 public void PlayAudio(AUDIO_TYPE _t) //2d
 {
     if (sfxEnable)
     {
         for (int i = 0; i < audios.Length; i++)
         {
             if (audios[i].type == _t)
             {
                 sfx.PlayOneShot(audios[i].clip);
                 break;
             }
         }
     }
 }
Example #14
0
    // Use this for initialization
    void Start()
    {
        for (AUDIO_TYPE i = AUDIO_TYPE.BACKGROUND_MUSIC; i < AUDIO_TYPE.END; ++i)
        {
            AudioManager newAudioManager = gameObject.AddComponent <AudioManager>();
            audioList.Add(i, newAudioManager);
        }

        foreach (AudioSourceScript audioSource in GetComponentsInChildren <AudioSourceScript>())
        {
            AddAudioSource(audioSource);
        }

        //Initialze(DatabaseSystem.GetInstance().GetDataBase("FYPJ2Database"), "VolumeData");
        Debug.Log("Finished SoundSystem Initialization");
    }
    /// <summary>
    /// We play a sound previously loaded
    /// </summary>
    /// <param name="audio"></param>
    /// <param name="type"></param>
    public void PlaySound(AudioClip audio, AUDIO_TYPE type)
    {
        switch (type)
        {
        case AUDIO_TYPE.BGM:
            m_audioSources[0].clip = audio;
            m_audioSources[0].Play();
            break;

        case AUDIO_TYPE.SFX:
            m_audioSources[1].PlayOneShot(audio);
            break;

        default:
            break;
        }
    }
    /// <summary>
    /// We play a sound loaded in real time
    /// </summary>
    /// <param name="name"> name of the sound we want to play. Must be placed in Assets/Resources/</param>
    public void PlaySoundByPath(string path, AUDIO_TYPE type)
    {
        AudioClip audio = (AudioClip)Resources.Load(path);

        switch (type)
        {
        case AUDIO_TYPE.BGM:
            m_audioSources[0].clip = audio;
            m_audioSources[0].Play();
            break;

        case AUDIO_TYPE.SFX:
            m_audioSources[1].PlayOneShot(audio);
            break;

        default:
            break;
        }
    }
Example #17
0
 void PlaySound(AUDIO_TYPE type)
 {
     AudioManager.SendMessage("PlaySound", type);
 }
Example #18
0
    public void Play(string name, PLAY_OPTION option, bool isLoop = false, AUDIO_TYPE type = AUDIO_TYPE.NON_CATEGORIZED, float startSec = 0.0f, float delay = 0.0f)
    {
        int index = Array.FindIndex <AudioClip>(audioClips, (AudioClip e) => { return(e.name == name); });

        Play(index, option, isLoop, type, startSec, delay);
    }
Example #19
0
 public float GetVolumeByType(AUDIO_TYPE audioType)
 {
     return(GetAudioManagerByType(audioType).GetVolume());
 }
Example #20
0
 public void ChangeVolume(float volume, AUDIO_TYPE audioType)
 {
     GetAudioManagerByType(audioType).SetAllVolume(volume);
 }
Example #21
0
 //On Value Change for Slider effects on SFX
 public void OnValueChanged(Slider slider, AUDIO_TYPE audioType)
 {
     Debug.Log(" Volume Changed!");
     GetAudioManagerByType(audioType).SetAllVolume(slider.value);
 }
Example #22
0
 public void ChangeClip(AUDIO_TYPE audioType, AudioClip clip, bool toLoop = false, float pitch = 1.0f, bool replaceNext = false, string audioSourceName = "")
 {
     GetAudioManagerByType(audioType).ChangeClip(clip, toLoop, pitch, replaceNext, audioSourceName);
 }
Example #23
0
    //Play Clip In Variant

    public void PlayClip(AUDIO_TYPE audioType, AudioClip clip, bool toLoop = false, string audioSourceName = "", bool playNext = false, bool replaceNext = false)
    {
        GetAudioManagerByType(audioType).PlayClip(clip, toLoop, audioSourceName, playNext, replaceNext);
    }
Example #24
0
 public bool CheckIfExist(AUDIO_TYPE type)
 {
     return(type < AUDIO_TYPE.END);
 }
Example #25
0
 public bool IsAudioClipData(string _strName, AUDIO_TYPE _eAudioType, ref AudioClipData _dataRet)
 {
     return(IsAudioClipData(_strName, m_tAudioClipDataList [(int)_eAudioType], ref _dataRet));
 }
Example #26
0
 //Everything Volume
 public void ToggleMute(AUDIO_TYPE type)
 {
     GetAudioManagerByType(type).ToggleMute();
 }
Example #27
0
 public void Add(AUDIO_TYPE _eAudioType, AudioClipData _tData)
 {
     m_tAudioClipDataList [(int)_eAudioType].Add(_tData);
     return;
 }