// サウンドを鳴らす 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"); }
// 空いているチャンネルを返す 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); }
public AudioClipData(AUDIO_TYPE _eAudioType, string _strPath, string _strName, AudioClip _audioClip) { m_eAudioType = _eAudioType; m_strPath = _strPath; m_strName = _strName; m_AudioClip = _audioClip; return; }
public AudioChannelData(AUDIO_TYPE _eAudioType, AudioSource _tAudioSource) { m_tAudioClipData = new AudioClipData(); m_eStatus = STATUS.IDLE; m_tAudioSource = _tAudioSource; m_eAudioType = _eAudioType; }
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); } }
// 音量調節 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; } }
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(); }
// 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); }
// 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; } } }
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; } } } }
// 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; } }
void PlaySound(AUDIO_TYPE type) { AudioManager.SendMessage("PlaySound", type); }
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); }
public float GetVolumeByType(AUDIO_TYPE audioType) { return(GetAudioManagerByType(audioType).GetVolume()); }
public void ChangeVolume(float volume, AUDIO_TYPE audioType) { GetAudioManagerByType(audioType).SetAllVolume(volume); }
//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); }
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); }
//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); }
public bool CheckIfExist(AUDIO_TYPE type) { return(type < AUDIO_TYPE.END); }
public bool IsAudioClipData(string _strName, AUDIO_TYPE _eAudioType, ref AudioClipData _dataRet) { return(IsAudioClipData(_strName, m_tAudioClipDataList [(int)_eAudioType], ref _dataRet)); }
//Everything Volume public void ToggleMute(AUDIO_TYPE type) { GetAudioManagerByType(type).ToggleMute(); }
public void Add(AUDIO_TYPE _eAudioType, AudioClipData _tData) { m_tAudioClipDataList [(int)_eAudioType].Add(_tData); return; }