예제 #1
0
    //-----------------------------------------------------------------
    //! @summary   初期化処理
    //!
    //! @parameter [void] なし
    //!
    //! @return    なし
    //-----------------------------------------------------------------
    void Start()
    {
        // 設定データを読み込む
        string jsonString = null;

        PiarhythmUtility.ReadFileText(PiarhythmDatas.SETTING_DATA_FILE_PATH, ref jsonString);

        // インスタンスを作成する
        m_settingData = JsonConvert.DeserializeObject <PiarhythmDatas.SettingData>(jsonString);

        // 設定データを設定する
        m_musicController.SetSettingData(m_settingData);

        // プレイする楽曲データのファイルパスを取得する
        string filePath = PlayerPrefs.GetString(PiarhythmDatas.PLAY_MUSIC_PIECE_FILE_PATH, null);

        if (filePath == "")
        {
            filePath = PiarhythmDatas.MUSIC_PIECE_DIRECTORY_PATH + "YUBIKIRI-GENMAN -special edit-.json";
        }

        // 楽曲データを読み込む
        PiarhythmUtility.ReadFileText(filePath, ref jsonString);

        // インスタンスを作成する
        m_musicPieceData = JsonConvert.DeserializeObject <PiarhythmDatas.MusicPieceData>(jsonString);

        // 背景を作成する
        if (m_musicPieceData.m_optionData.m_tempDatas.Length != 0)
        {
            for (int i = 1; i < m_musicPieceData.m_optionData.m_tempDatas.Length; ++i)
            {
                m_musicPieceData.m_optionData.m_tempDatas[i].m_startMeasure += 2;
            }
        }
        m_musicPieceData.m_optionData.m_wholeMeasure += 5;
        m_musicController.CreateMusicScoreBackGround(m_musicPieceData.m_optionData);

        // 楽曲全体の時間を取得する
        m_wholeTime = m_musicController.GetWholeTime();

        // ノーツを生成する
        for (int i = 0; i < m_musicPieceData.m_noteDataList.Length; ++i)
        {
            m_musicPieceData.m_noteDataList[i].m_startBeat += 8;
        }
        m_musicController.CreateNoteList(m_musicPieceData.m_noteDataList);

        // BGMを読み込む
        if (m_musicPieceData.m_bgmData != null)
        {
            if (m_musicPieceData.m_bgmData.m_path != null)
            {
                // 読み込み開始フラグをたてる
                m_loadFlag = true;

                // コルーチンを設定する
                m_coroutine = PiarhythmUtility.LoadAudioFile(m_musicPieceData.m_bgmData.m_path);
            }
            else
            {
                // アニメーションを開始する
                m_keyboardController.PlayAnimation();
            }
        }
        else
        {
            // アニメーションを開始する
            m_keyboardController.PlayAnimation();
        }


        // BGMの開始時間を計算する
        // 一拍当たりの時間を求める
        float beatPerTempo = 60.0f / m_musicPieceData.m_optionData.m_tempDatas[0].m_tempo;

        m_bgmStartTime = beatPerTempo * 8.0f;
    }