public void OnDrag(ExtendedPointerEventData eventData) { //Touch event if (eventData.touchId != 0) { for (int i = 0; i < _currentInputCount; i++) { if (_activeDragInputs[i]._touchId == eventData.touchId) { _activeDragInputs[i]._position = eventData.position; return; } } } //Pointer event { for (int i = 0; i < _currentInputCount; i++) { if (_activeDragInputs[i]._pointerId == eventData.pointerId) { _activeDragInputs[i]._position = eventData.position; return; } } } }
public void OnEndDrag(ExtendedPointerEventData eventData) { bool foundInput = false; for (int i = 0; i < _currentInputCount; i++) { if ((eventData.touchId != 0 && _activeDragInputs[i]._touchId == eventData.touchId) || (eventData.touchId == 0 && _activeDragInputs[i]._pointerId == eventData.pointerId)) { foundInput = true; } if (foundInput && i < _currentInputCount - 1) { _activeDragInputs[i] = _activeDragInputs[i + 1]; } } if (foundInput) { _currentInputCount--; } }
public void OnBeginDrag(ExtendedPointerEventData eventData) { //Touch event if (eventData.touchId != 0) { for (int i = 0; i < _currentInputCount; i++) { if (_activeDragInputs[i]._touchId == eventData.touchId) { _activeDragInputs[i]._position = eventData.position; return; } } } //Pointer event { for (int i = 0; i < _currentInputCount; i++) { if (_activeDragInputs[i]._pointerId == eventData.pointerId) { _activeDragInputs[i]._position = eventData.position; return; } } } //New input if (_currentInputCount < _activeDragInputs.Length) { _activeDragInputs[_currentInputCount]._touchId = eventData.touchId; _activeDragInputs[_currentInputCount]._pointerId = eventData.pointerId; _activeDragInputs[_currentInputCount]._position = eventData.position; _activeDragInputs[_currentInputCount]._camera = eventData.pressEventCamera; _currentInputCount++; } }