Пример #1
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);
    }
Пример #2
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);
    }
Пример #3
0
 // こいつは絶対鳴らすマン
 public int play_sound(AudioSource _audioSource, AudioChannelData _audioChannnelData)
 {
     _audioSource.clip = _audioChannnelData.m_tAudioClipData.m_AudioClip;
     _audioSource.loop = _audioChannnelData.m_bLoop;
     _audioSource.Play();
     return(0);
 }
Пример #4
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);
    }
Пример #5
0
    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;
    }
Пример #6
0
    // BGM停止
    public void StopBGM()
    {
        AudioChannelData channelData = m_tAudioChannnelDataList [(int)AUDIO_TYPE.BGM] [0];

        channelData.m_tAudioSource.Stop();
        channelData.m_tAudioSource.clip = null;
        return;
    }
Пример #7
0
    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;
    }
Пример #8
0
    /*
     * 元
     * 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;
    }
Пример #9
0
    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;
        }
    }
Пример #10
0
    /*
     *
     * // なぜ分けたのか?
     * 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;
        }
    }
Пример #11
0
 public AudioChannelData PlaySound(AudioChannelData _channnel)
 {
     recievePlaySound(_channnel);
     return(_channnel);
 }