void OnPlayButtonClicked() { if (state == MidiPageState.Playback) { state = MidiPageState.None; startTime = playbackPos; playButton.GetComponentInChildren <Text>().text = "播放"; } else if (state == MidiPageState.None) { absoluteStartTime = Time.time; state = MidiPageState.Playback; playButton.GetComponentInChildren <Text>().text = "暂停"; } }
private void Update() { if (state == MidiPageState.Playback) { playbackPos = Time.time - absoluteStartTime + startTime; if (playbackPos >= endTime) { state = MidiPageState.None; playbackPos = startTime = selectStartTime; curNote = FindNote(startTime); playbackTick.anchoredPosition = new Vector2(ContentStart + startTime * lengthPerSec, 0); playButton.GetComponentInChildren <Text>().text = "播放"; } else { playbackTick.anchoredPosition = new Vector2(ContentStart + playbackPos * lengthPerSec, 0); if (playbackPos >= allNotes[curNote].note.startTimeInSec) { if (allNotes[curNote].isActiveAndEnabled) { allNotes[curNote].PlaySound(); } ++curNote; } } } // debug if (center) { MusicalLevelEditor.ins.mousePositionInScroll[0] = (center.transform as RectTransform).anchoredPosition = Utils.ScreenToCanvasPos(Input.mousePosition) + GetScrollLocalCenter() - (scroll.transform as RectTransform).anchoredPosition; } // control if (Input.GetMouseButtonDown(1)) // mouse right click { DeselectAll(); } }