//----------------------------------------------------------------- //! @summary UIへノーツ情報を反映させる //! //! @parameter [displayNotes] 表示するノーツ //! //! @return なし //----------------------------------------------------------------- public void DisplayNotes(EditNotesController displayNotes) { // UIへ情報を反映させる if (displayNotes != null) { // ノーツデータの取得 PiarhythmDatas.NoteData notesData = displayNotes.GetNotesData(); // 音階の更新 m_musicalScaleInputField.text = notesData.m_scale; // 開始の拍数を更新 m_startBeatInputField.text = notesData.m_startBeat.ToString(); // 音符の長さを更新 m_noteLengthDropdown.value = notesData.m_noteLength; // 色の更新 if (notesData.m_color == Color.magenta) { m_colorDropdown.value = 0; } else if (notesData.m_color == Color.green) { m_colorDropdown.value = 1; } else if (notesData.m_color == Color.cyan) { m_colorDropdown.value = 2; } } }
//----------------------------------------------------------------- //! @summary ノーツの生成処理(引数あり) //! //! @parameter [notesDetas] ノーツデータの配列 //! //! @return なし //----------------------------------------------------------------- public void CreateNotes(PiarhythmDatas.NoteData noteData) { // ノーツを生成する GameObject newNotes = Instantiate(m_notesPrefab); // コンポーネントの取得 EditNotesController editNotes = newNotes.GetComponent <EditNotesController>(); // マネージャーを設定する editNotes.SetNotesManager(this); // キャンバスの設定 editNotes.SetCanvas(m_canvas); // キーボード情報 editNotes.SetKeyDictionary(m_keyDictionary); // NotesSheetControllerを設定する editNotes.SetNotesSheetController(m_notesSheetController); // OptionSheetControllerを設定する editNotes.SetOptionSheetController(m_optionSheetController); // MusicalScoreの子に設定する newNotes.GetComponent <RectTransform>().SetParent(m_musicalScore.GetComponent <RectTransform>()); // 初期化処理 editNotes.Initialize(); // ノーツデータを設定する editNotes.SetNotesData(noteData); // リストに登録する m_notesList.Add(newNotes); }
//----------------------------------------------------------------- //! @summary 再生瞬間のノーツの処理 //! //! @parameter [elapsedTime] 経過時間 //! //! @return なし //----------------------------------------------------------------- public void PlayMomentEditNotes(float elapsedTime) { foreach (GameObject notes in m_notesList) { PiarhythmDatas.NoteData notesData = null; // コンポーネントの取得 if (notes.GetComponent <EditNotesController>()) { EditNotesController editNotesController = notes.GetComponent <EditNotesController>(); // データの取得 notesData = editNotesController.GetNotesData(); // 経過時間が既にノーツの開始時間を過ぎている float startTime = m_optionSheetController.GetStartTime(notesData.m_startBeat); if (elapsedTime > startTime) { // 音をならないようにする editNotesController.SetPlayedFlag(true); } else { editNotesController.SetPlayedFlag(false); } } else { ConnectNoteController connectNoteController = notes.GetComponent <ConnectNoteController>(); // データの取得 notesData = connectNoteController.GetNoteData(); // 経過時間が既にノーツの開始時間を過ぎている float startTime = m_optionSheetController.GetStartTime(notesData.m_startBeat); if (elapsedTime > startTime) { // 音をならないようにする connectNoteController.SetPlayedFlag(true); } else { connectNoteController.SetPlayedFlag(false); } } } }
//----------------------------------------------------------------- //! @summary 停止瞬間のノーツの処理 //! //! @parameter [void] なし //! //! @return なし //----------------------------------------------------------------- public void StopMomentEditNotes() { foreach (GameObject notes in m_notesList) { if (notes.GetComponent <EditNotesController>()) { // コンポーネントの取得 EditNotesController editNotesController = notes.GetComponent <EditNotesController>(); // 音を復活させる editNotesController.SetPlayedFlag(false); } else { // コンポーネントの取得 ConnectNoteController connectNoteController = notes.GetComponent <ConnectNoteController>(); // 音を復活させる connectNoteController.SetPlayedFlag(false); } } }