zoukankan      html  css  js  c++  java
  • UGUI在两个UI间坐标转换

    在UGUI中,在两个Canvas之间进行坐标转换,从CanvasA下的坐标转换到CanvasB下。

    或者在同一个界面下,从不同的节点下,转成相同的坐标。

    函数定义

    public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint);

    解释:

    rect:目标界面的节点

    screenPoint:要转换的节点屏幕坐标,如果worldCamera为空就返回 vector2.zero

    cam:目标界面的camera,如果 Canvas 的模式为Screen Space - Overlay mode, the cam parameter should be null.

    localPoint: 转换后的坐标点

    返回值:判断此点是否在Rect所在的平面上

    最后算出来的结果使用:rectTransform.anchoredPosition = localPoint

    要转的节点屏幕坐标

    var screenPoint = canvas.worldCamera.WorldToScreenpoint(obj.transform.position)

    通过查看ugui的Slider(滑块)源码

    void UpdateDrag(PointerEventData eventData ,Camera cam)
    {
      RectTransformUtility.ScreenPointToLocalPointInRectangle(clickRect,eventData.position,cam,out localcursor)
    }
    
  • 相关阅读:
    Webpack
    django 基础入门(二)
    django 基础入门(一)
    jQuery(二)
    JavaScripts+jquery
    html(第一天,div+css)
    SqlAlchemy ORM
    redis总结
    memcached总结
    Python (九) 协程以及数据库操作
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/11649045.html
Copyright © 2011-2022 走看看