这篇文章主要记录在开发中遇到的问题,当Canvas设置为“Screen Space - Overlay mode”模式的情况下,怎么让手势还能准确的拖动ui。
///
/// 鼠标滑动中
///
///
private RectTransform curRecTran;
public void OnDrag(PointerEventData eventData)
{
Vector3 globalMousePos;
if (RectTransformUtility.ScreenPointToWorldPointInRectangle(curRecTran, eventData.position,
eventData.pressEventCamera, out globalMousePos))
{
curRecTran.position = globalMousePos;
}
}
///
/// 鼠标按下
///
///
public void OnPointerDown(PointerEventData eventData)
{
curRecTran = transform.GetComponent<RectTransform>();
}
主要使用
if (RectTransformUtility.ScreenPointToWorldPointInRectangle(curRecTran, eventData.position,
eventData.pressEventCamera, out globalMousePos))
{
curRecTran.position = globalMousePos;
}
来进行位置转换