加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:21:39 所属栏目:百科 来源:网络整理
导读:现在,在Unity中拖动UI元素非常容易:制作一些UI项目.添加组件 – 活动 – 事件触发器.放在下面的脚本上.单击以添加四个明显的触发器.你完成了. 然而. 我完全迷失了指针坐标和UI坐标之间的关系(如RectTransform中所见,等等). 在下面的DragIt中:如何在手指下
现在,在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");

    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读