Похоже на багу Unity. Тогда такой костыль:
using UnityEngine;
public class DragTest : MonoBehaviour
{
public Rect pos = new Rect(20,20,200,200);
private bool _drag = false;
private Vector2 _lastMousePos;
public void OnGUI()
{
GUI.Box(pos, "Тащи меня");
var evtType = Event.current.type;
var mousePos = Event.current.mousePosition;
if (evtType == EventType.MouseDown && pos.Contains(mousePos))
{
_drag = true;
_lastMousePos = mousePos;
}
else if (evtType == EventType.MouseUp && pos.Contains(mousePos))
{
_drag = false;
}
else if (evtType == EventType.MouseDrag && _drag)
{
var delta = mousePos - _lastMousePos;
pos.x += delta.x;
pos.y += delta.y;
_lastMousePos = mousePos;
}
}
}
Кстати, какая версия Unity?