void OnMouseDrag() { TimelinePosition = Input.mousePosition.x - deltaX; TimelinePosition = CrossSceneData.Remap(TimelinePosition, 0, Screen.width, timelineIndicator.LeftBorder, timelineIndicator.RightBorder); Timestamp = CrossSceneData.Remap(TimelinePosition, 0, Screen.width, 0, audioSource.clip.length); timelineIndicator.updateSingleNotePosition(transform); }
private void OnMouseOver() { // Anchor position on action1 key if (Input.GetKeyDown(action1)) { mouseAnchoredPosition = CrossSceneData.Remap(Input.mousePosition.x, 0, Screen.width, -timelineIndicator.TimelineCanvasRadius, timelineIndicator.TimelineCanvasRadius); deltaX = mouseAnchoredPosition - rectTransform.anchoredPosition.x; } // Delete object on action2 key else if (Input.GetKeyDown(action2) || Input.GetMouseButtonDown(1)) { Destroy(transform.gameObject); } }
public Texture2D CreateWaveformSpectrumTexture(int leftBorder, int rightBorder) { int width = (int)timelineTransform.rect.width; int height = (int)timelineTransform.rect.height; Texture2D timelineTexture = new Texture2D(width, height, TextureFormat.RGBA32, false); float[] samples = new float[monoAudioClip.samples]; float[] waveform = new float[width]; monoAudioClip.GetData(samples, 0); List <float> samplesList = new List <float>(samples); leftBorder = (int)CrossSceneData.Remap(leftBorder, 0, Screen.width, 0, samplesList.Count); rightBorder = (int)CrossSceneData.Remap(rightBorder, 0, Screen.width, 0, samplesList.Count); samplesList.RemoveRange(rightBorder, samplesList.Count - rightBorder); samplesList.RemoveRange(0, leftBorder); int packSize = (samplesList.Count / width) + 1; int s = 0; for (int i = 0; i < samplesList.Count; i += packSize) { waveform[s] = Mathf.Abs(samplesList[i]); s++; } for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { timelineTexture.SetPixel(x, y, backgroundColor); } } for (int x = 0; x < waveform.Length; x++) { for (int y = 0; y <= waveform[x] * ((float)height * .75f); y++) { timelineTexture.SetPixel(x, (height / 2) + y, waveformColor); timelineTexture.SetPixel(x, (height / 2) - y, waveformColor); } } timelineTexture.Apply(); return(timelineTexture); }
private void Update() { bool moved = false; if (Input.mouseScrollDelta.y > 0) { MoveUp(); moved = true; } else if (Input.mouseScrollDelta.y < 0) { MoveDown(); moved = true; } // If list was moved if (moved) { //CrossSceneData.SelectedLevelName = boxes[selectedBox].GetComponent<LevelBox>().title.text; //menuManager.MusicSource.clip = musicList[selectedBox]; //menuManager.MusicSource.Play(); ChangeMusic(); } // Move animation requires interpolation for (int i = 0; i < boxes.Count; i++) { Vector3 localDestination = new Vector3(0, i * -100f + globalDestination.y, 1); float distanceFromCenter = Mathf.Abs(i - selectedBox); if (distanceFromCenter > 3) { distanceFromCenter = 3; } distanceFromCenter = CrossSceneData.Remap(distanceFromCenter, 0, boxes.Count, 4, 2f); Vector3 localScale = new Vector3(distanceFromCenter, distanceFromCenter, 1); boxes[i].anchoredPosition = Vector3.Lerp(boxes[i].anchoredPosition, localDestination, Time.deltaTime * movementSpeed); boxes[i].localScale = Vector3.Lerp(boxes[i].localScale, localScale, Time.deltaTime * movementSpeed); } }