当前位置 : 主页 > 编程语言 > c语言 >

c# – Unity3D UI,计算拖动项目的位置?

来源:互联网 收集:自由互联 发布时间:2021-06-25
现在,在Unity中拖动UI元素非常容易:制作一些UI项目.添加组件 – 活动 – 事件触发器.放在下面的脚本上.单击以添加四个明显的触发器.你完成了. 然而. 我完全迷失了指针坐标和UI坐标之
现在,在Unity中拖动UI元素非常容易:制作一些UI项目.添加组件 – >活动 – >事件触发器.放在下面的脚本上.单击以添加四个明显的触发器.你完成了.

然而.

我完全迷失了指针坐标和UI坐标之间的关系(如RectTransform中所见,等等).

在下面的DragIt中:如何在手指下正确移动UI面板?

假设你有一个大面板,十个UIButton坐在面板上,按钮上有Dragster. RectTransform坐标和鼠标指针之间的关系是什么…

简而言之,如何在DragIt()下方移动其中一个按钮?

/* modern Unity drag of UI element */
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class Dragster:MonoBehaviour
    {
    public int index; // number each of your UI items
    static bool beingDragged = false;
    static int dragFrom;
    public void DragStart()
        {
        beingDragged = true; dragFrom = index;
        }
    public void DragIt()
        {
        ? ? W T F ? ?
        }
    public void DragEnd()
        {
        beingDragged = false;
        }
    public void DroppedBra()
        {
        Debig.Log("Drag: from/to " +dragFrom +" --> " +index);
        }
    }
对于Draging的东西我只是这样做:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class Draggable : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler {



    public void OnBeginDrag(PointerEventData eventData) {

    }

    public void OnDrag(PointerEventData eventData) {
        //Debug.Log ("OnDrag");

        this.transform.position = eventData.position;

        }

    public void OnEndDrag(PointerEventData eventData) {
        Debug.Log ("OnEndDrag");

    }
}
网友评论