当前位置:   article > 正文

Unity学习阶段个人笔记_unity中onenddrag的pointereventdata

unity中onenddrag的pointereventdata

一、UGUI部分:

1、场景一:要进行交互的UGUI,前面有一个UGUI挡住了要进行交互的UGUI,使之要进行交互的游戏物体不能与射线进行交互,这时候要在挡住的那个UGUI物体身上添加Canvas Group组件,取消勾选被挡住物体身上Canvas Group组件的Blocks Raycast,这时候要交互的游戏物体就能正常的进行交互。用代码进行表示的话就是:

gameObject.GetComponent<CanvasGroup>().blocksRaycasts = false;
  • 1

2、场景二:用代码动态的改变UGUI的图片或文字的宽度以及高度:

    /// <summary>
    /// 改变UGUI图片或文字的宽度以及高度
    /// </summary>
    /// <param name="rectTransform">要改变宽度或高度的UGUI游戏物体</param>
    /// <param name="width">传递进来的宽度</param>
    /// <param name="height">传递进来的高度</param>
    private void ResetSpriteSize(RectTransform rectTransform, float width, float height)
    {
        //改变UGUI图片的宽度
        rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, width);
        //改变UGUI图片的高度
        rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3、场景三:使要被拖拽的游戏物体能跟鼠标进行跟随移动

    /// <summary>
    /// 拖拽进行中
    /// </summary>
    /// <param name="eventData"></param>
    void IDragHandler.OnDrag(PointerEventData eventData)
    {
        Vector3 pos;
        //m_RectTransform指的是被拖拽的游戏物体
        RectTransformUtility.ScreenPointToWorldPointInRectangle(m_RectTransform, eventData.position, eventData.enterEventCamera, out pos);
        m_RectTransform.position = pos;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4、场景四:当把一个UGUI游戏物体拖拽到某一个位置的时候,也就是拖拽结束的时候,判断物体最后是在哪个地方:

    void IEndDragHandler.OnEndDrag(PointerEventData eventData)
    {
        //获得拖拽结束点时候的位置点
        GameObject target = eventData.pointerEnter;
        Debug.Log("拖拽结束点后面的物体:"+target.name);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5、强制刷新HorizontalLayoutGroup布局组件中的元素排列以及各个元素的大小,可以通过以下方法:

LayoutRebuilder.ForceRebuildLayoutImmediate(transform as RectTransform);
  • 1

上面的transform就代表着拥有HorizontalLayoutGroup布局组件的游戏物体,一定要转化成RectTransform类型才能作为上述方法中的参数。
以下是AI的回答:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/567333
推荐阅读
相关标签
  

闽ICP备14008679号