Everу even value MouseMoveEvent.mouseDelta is strange.

X value is X/2 of not even value, Y value is -1 *X/2 of not even value

Log example:
(-1.0, -1.0)
(-0.5, 0.5)Strange!!!
(-2.0, -1.0)
(-1.0, 0.5)Strange!!!
(-1.0, -1.0)
(-0.5, 0.5)Strange!!!
(-1.0, 0.0)
(-0.5, 0.0)Strange!!!
(-1.0, 0.0)
(-0.5, 0.0)Strange!!!
(0.0, -1.0)
(0.0, 0.5)Strange!!!

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UIElements;

public class ClickAndSwipeController1 : MonoBehaviour
{

    public UIDocument mainMenuUIDocument;

    public delegate void UnitClickHandler(Unit unit);
    public delegate void RotateSwipeHandler(Vector2 rotation);

    public event UnitClickHandler UnitClickedEvent;
    public event RotateSwipeHandler RotateSwipeEvent;

    private VisualElement visualElementRoot;
    private VisualElement _swipeArea;

    private bool _isDraged = false;
    private bool _isMouseDown = false;
    private Vector2 prevMouseDelta = new Vector2();


    private void OnEnable()
    {
        visualElementRoot = mainMenuUIDocument.rootVisualElement.Q<VisualElement>("root");

        _swipeArea = mainMenuUIDocument.rootVisualElement.Q<VisualElement>("ve-swipeArea");
        _swipeArea.RegisterCallback<MouseMoveEvent>(CallbackMouseMove);
        _swipeArea.RegisterCallback<MouseDownEvent>(CallbackMouseDown);
        visualElementRoot.RegisterCallback<MouseUpEvent>(CallbackMouseUp);
    }




    private void CallbackMouseDown(MouseDownEvent evt)
    {
        if (evt.target == _swipeArea && !_isMouseDown)
        {
            _isMouseDown = true;
        }
    }

    private void CallbackMouseMove(MouseMoveEvent evt)
    {
        if (evt.target == _swipeArea && _isMouseDown)
        {
            _isDraged = true;
            //OnRotateSwipe(evt.mouseDelta);

            prevMouseDelta.x = prevMouseDelta.x / 2;
            prevMouseDelta.y = -prevMouseDelta.y / 2;
            if (prevMouseDelta == evt.mouseDelta)
                Debug.Log(evt.mouseDelta + "Strange!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            else
                Debug.Log(evt.mouseDelta);
            prevMouseDelta = evt.mouseDelta;


        }

    }

    private void CallbackMouseUp(MouseUpEvent evt)
    {
        if (_isMouseDown && _isDraged)
        {
            _isDraged = false;
            _isMouseDown = false;
        }
        else if (_isMouseDown && !_isDraged)
        {
            //CheckClick();
            _isDraged = false;
            _isMouseDown = false;
        }
    }


 
}

Bump!

Is it bug?

I had a problem like this and it turned out that I had two EventSystem (UI Toolkit) components in my scene and each was generating a mouse move event. It turns out that you can only have one EventSystem even if you have multiple UI Documents.

That’s definitely something strange. Just moving over a simple visual element I’m getting some odd values for mouseDelta (MouseMoveEvent)