// 空いているチャンネルを返す 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); }
// サウンドを鳴らす 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); }
// こいつは絶対鳴らすマン public int play_sound(AudioSource _audioSource, AudioChannelData _audioChannnelData) { _audioSource.clip = _audioChannnelData.m_tAudioClipData.m_AudioClip; _audioSource.loop = _audioChannnelData.m_bLoop; _audioSource.Play(); return(0); }
public AudioChannelData PlayBGM(string _strName) { _strName = _strName.ToLower(); //Debug.LogError ( _strName ); AudioChannelData channelData = m_tAudioChannnelDataList [(int)AUDIO_TYPE.BGM] [0]; //Debug.Log ("channelData:"+channelData); //Debug.Log ("channelData:"+channelData.m_strFilename); if (channelData.m_strFilename != null && channelData.m_strFilename.ToLower().Equals(_strName.ToLower()) == true) { return(channelData); } channelData.m_strFilename = _strName; channelData.m_bLoop = true; AudioClipData playData = new AudioClipData(); if (false == IsAudioClipData(_strName, AUDIO_TYPE.BGM, ref playData)) { m_csSoundPlayerSupport.PlaySound(channelData); return(channelData); } PlaySound(channelData); return(channelData); }
void initialize() { if (m_bInitialized) { return; } m_bInitialized = true; DontDestroyOnLoad(gameObject); //Debug.LogError ("awake 2 "); m_csSoundPlayerSupport = GetComponent <SoundPlayerSupport> (); // 全てのAudioSourceコンポーネントを追加する BGMsource = gameObject.AddComponent <AudioSource>(); BGMsource.loop = true; for (int i = 0; i < (int)AUDIO_TYPE.MAX; i++) { //Debug.Log ((AUDIO_TYPE)i); for (int num = 0; num < CHANNNEL_NUM_LIST [i]; num++) { //Debug.Log ("channel:" + num.ToString() ); AudioSource source = gameObject.AddComponent <AudioSource>(); AudioChannelData channnelData = new AudioChannelData((AUDIO_TYPE)i, source); m_tAudioChannnelDataList [i].Add(channnelData); } } foreach (AudioClipData data in m_bgmAudioClipData) { m_tAudioClipDataList [(int)AUDIO_TYPE.BGM].Add(data); } return; }
// BGM停止 public void StopBGM() { AudioChannelData channelData = m_tAudioChannnelDataList [(int)AUDIO_TYPE.BGM] [0]; channelData.m_tAudioSource.Stop(); channelData.m_tAudioSource.clip = null; return; }
public void PlaySound(AudioChannelData _channnel) { AudioClipData audioClipData = new AudioClipData(); //AudioClipData audioClipData; if (false == IsAudioClipData(_channnel.m_strFilename, _channnel.m_eAudioType, ref audioClipData)) { return; } //Debug.Log ("PlaySound:" + _channnel.m_strFilename); _channnel.Play(audioClipData); return; }
/* * 元 * public void recievePlaySound( AudioChannelData _channnel ){ * if( DataContainer.Instance.MasterLoadAudioList != null ){ * foreach (MasterLoadAudio.Data data in DataContainer.Instance.MasterLoadAudioList) { * Debug.Log (data.filename + " : " + _channnel.m_strFilename); * if (data.filename.Equals (_channnel.m_strFilename)) { * * m_tAudioChannelQueue.Enqueue (_channnel); * return; * } * } * } * return; * } */ public void recievePlaySound(AudioChannelData _channnel) { foreach (MasterAudioCSV data in DataManager.master_audio_list) { //Debug.Log (data.filename + " : " + _channnel.m_strFilename); if (data.filename.Equals(_channnel.m_strFilename)) { m_tAudioChannelQueue.Enqueue(_channnel); return; } } Debug.LogError("fail" + " : " + _channnel.m_strFilename); return; }
void Update() { bool bInit = false; bool bHitEvent = false; if (Input.GetMouseButtonDown(0)) { RaycastHit hit; // 床との当たり判定のみを取りたいのでマスクするレイヤーを設定する //int layerNo = LayerMask.NameToLayer ("Floor"); //int layerMask = 1 << layerNo; Ray ray = m_useCamera.ScreenPointToRay(Input.mousePosition); float fDistance = 100.0f; //レイを投射してオブジェクトを検出 if (Physics.Raycast(ray, out hit, fDistance)) { //Debug.LogError ( hit.collider.gameObject.name +":"+ hit.point.x); if (hit.collider.gameObject.name.Equals("bar")) { bHitEvent = true; m_goCursor.transform.position = new Vector3(hit.point.x, m_goCursor.transform.position.y, 0.0f); } } } if (m_eStepPre != m_eStep) { m_eStepPre = m_eStep; bInit = true; } switch (m_eStep) { case STEP.NONE: return; case STEP.LIMIT_CHECK: if (EveryStudioLibrary.CommonNetwork.Instance.IsConnected(m_iNetworkSerial) == true) { EveryStudioLibrary.TNetworkData network_data = EveryStudioLibrary.CommonNetwork.Instance.GetData(m_iNetworkSerial); if (network_data.IsError()) { m_strLimitTime = TimeManager.StrNow(); // 過去ならなんでもいい m_strLimitTime = "2015-10-10 10:10:10"; } else { string strRead = EveryStudioLibrary.CommonNetwork.Instance.GetString(m_iNetworkSerial); StringReader sr = new StringReader(strRead); m_strLimitTime = sr.ReadLine(); m_strTitle = sr.ReadLine(); m_lbTitle.text = m_strTitle; sr.Close(); } //m_strLimitTime = "2015-10-10 10:10:10"; m_bClose = false; //Debug.Log (TimeManager.Instance.GetDiffNow (m_strLimitTime).TotalSeconds); // 比較して過去だとマイナスになる m_eStep = STEP.MAX; if (TimeManager.Instance.GetDiffNow(m_strLimitTime).TotalSeconds < 0) { m_bClose = true; m_goLimit.SetActive(m_bClose); m_eStep = STEP.LOADING; } } else { } break; case STEP.LOADING: if (bInit) { m_AudioChannelData = SoundManager.Instance.PlayBGM("freakyf"); m_btnPause.gameObject.SetActive(false); m_btnPlay.gameObject.SetActive(true); } if (m_AudioChannelData.m_tAudioSource.isPlaying) { m_fTimer = m_AudioChannelData.m_tAudioSource.time; m_fTimerMax = m_AudioChannelData.m_tAudioSource.clip.length; m_AudioChannelData.m_tAudioSource.Stop(); m_eStep = STEP.PAUSE; } else { } break; case STEP.PAUSE: if (bInit) { m_bLoaded = true; m_btnPause.gameObject.SetActive(false); m_btnPlay.gameObject.SetActive(true); //m_AudioChannelData.m_tAudioSource.pitch = 0.0f; m_AudioChannelData.m_tAudioSource.Stop(); m_btnPlay.TriggerClear(); } if (m_btnPlay.ButtonPushed) { m_eStep = STEP.PLAYING; } break; case STEP.PLAYING: if (bInit) { m_btnPause.gameObject.SetActive(true); m_btnPlay.gameObject.SetActive(false); m_fPitch = 1.0f; m_AudioChannelData.m_tAudioSource.time = m_fTimer; m_AudioChannelData.m_tAudioSource.pitch = m_fPitch; m_AudioChannelData.m_tAudioSource.Play(); m_btnPause.TriggerClear(); } if (m_btnPause.ButtonPushed) { m_eStep = STEP.PAUSE; } m_fTimer = m_AudioChannelData.m_tAudioSource.time; break; case STEP.MAX: default: break; } float fRate = GetRate(m_fTimer, 0.0f, m_fTimerMax); if (bHitEvent == true) { fRate = GetRate(m_goCursor.transform.localPosition.x, -320.0f, 320.0f); m_fTimer = fRate * m_fTimerMax; m_AudioChannelData.m_tAudioSource.time = m_fTimer; } else { m_goCursor.transform.localPosition = new Vector3(Linear(fRate, -320.0f, 320.0f), 0.0f, 0.0f); } SetTime(m_fTimer, m_fTimerMax); if (m_btnUp.ButtonPushed) { m_btnUp.TriggerClear(); if (m_fPitch < 1.0f) { m_fPitch = 1.0f; } m_fPitch += 0.2f; m_AudioChannelData.m_tAudioSource.pitch = m_fPitch; } if (m_btnDown.ButtonPushed) { m_btnDown.TriggerClear(); if (-0.2 <= m_fPitch) { m_fPitch = 0.0f; } m_fPitch -= 0.2f; m_AudioChannelData.m_tAudioSource.pitch = m_fPitch; } }
/* * * // なぜ分けたのか? * public int PlaySe( string _strFilename ){ * _strFilename = _strFilename.ToLower (); * return recievePlaySound(_strFilename); * } * public int PlayBgm( string _strFilename ){ * _strFilename = _strFilename.ToLower (); * Debug.Log (_strFilename); * return recievePlaySound(_strFilename); * } */ // Update is called once per frame void Update() { bool bInit = false; if (m_eStepPre != m_eStep) { m_eStepPre = m_eStep; bInit = true; } switch (m_eStep) { case STEP.IDLE: if (0 < m_tAudioChannelQueue.Count) { m_eStep = STEP.LOAD; } break; case STEP.LOAD: if (bInit) { m_tChannnelData = m_tAudioChannelQueue.Dequeue(); if (m_csAssetBundleAudio == null) { m_csAssetBundleAudio = GetComponent <UtilAssetBundleAudio> (); } foreach (MasterAudioCSV data in DataManager.master_audio_list) { if (data.filename.Equals(m_tChannnelData.m_strFilename)) { m_tempLoadAudioData.filename = data.filename; m_tempLoadAudioData.audio_type = data.audio_type; m_tempLoadAudioData.path = data.path; m_tempLoadAudioData.version = data.version; EditPlayerSettingsData epsData = ConfigManager.instance.GetEditPlayerSettingsData(); //Debug.Log (epsData.m_strS3Url); //Debug.Log (data.path); string resultUrl = epsData.m_strS3Url + "/" + data.path + "/" + data.filename + ".unity3d"; Debug.Log(resultUrl); m_csAssetBundleAudio.Load(data.filename, resultUrl, 1); } } } if (m_csAssetBundleAudio.IsLoaded()) { //AudioClipData addData = new AudioClipData( m_tempLoadAudioData.audio_type , m_tempLoadAudioData.path , m_tempLoadAudioData.filename , m_cs //SoundManager.Instance.Add (m_tempAudioClipData); //SoundManager.Instance.PlaySE (m_strLoaingFile); SoundManager.Instance.PlaySound(m_tChannnelData); /* * * if (m_tempLoadAudioData.audio_type == (int)AUDIO_TYPE.SE) { * SoundManager.Instance.PlaySE (m_strLoaingFile); * } else if (m_tempLoadAudioData.audio_type == (int)AUDIO_TYPE.VOICE) { * SoundManager.Instance.PlayVoice (m_strLoaingFile); * }else if( m_tempLoadAudioData.audio_type == (int)AUDIO_TYPE.BGM ){ * SoundManager.Instance.PlayBGM (m_strLoaingFile); * } else { * Debug.Log ("unknown type"); * } */ m_eStep = STEP.IDLE; } break; case STEP.MAX: default: break; } }
public AudioChannelData PlaySound(AudioChannelData _channnel) { recievePlaySound(_channnel); return(_channnel); }