public void OnDrag(PointerEventData eventData) { if (eventData.button == PointerEventData.InputButton.Middle) { timeline.OnTimelineDrag(eventData); return; } if (resizing) { float nextWidth = Mathf.Clamp01(this.Width + ScreenToNormalizedPosition(eventData.delta, true).x / zoom); float minWidth = .001f; if (Snap) { int bpm = timeline.CurrentBPM; float secondsPerBeat = (60f / (float)bpm) * GetSnappingResolution(); minWidth = secondsPerBeat / timeline.Duration; // One beat minimum if it is snapped } // Min size is 1/1000th if (nextWidth > minWidth && track.CanPlaceTrackChunk(Position, nextWidth, this)) { this.Width = nextWidth; } } else { float nextPosition = Mathf.Clamp01(this.Position + ScreenToNormalizedPosition(eventData.delta, true).x / zoom); if (track.CanPlaceTrackChunk(nextPosition, Width, this)) { this.Position = nextPosition; } } }
public void OnDrag(PointerEventData eventData) { timeline.OnTimelineDrag(eventData); }