内容纲要

在腾讯课堂的UGUI跟随鼠标算法中,对使用要求较高,调节背景画布设置较高,但使用世界坐标画布则较难拿到中点篮圈坐标。
(目前没有具体测试世界坐标画布拿不到篮圈中心坐标的问题)
若画布使用世界坐标,可以使用另外一种UI跟踪鼠标的算法:对使用调节要求

public Vector2 GetTrackPosition(float x1, float y1, float x2, float y2)
    {
        float x = Input.mousePosition.x;
        float y = Input.mousePosition.y;
        return new Vector2(((x * 2 - x1) / x1) * x2, ((y * 2 - y1) / y1) * y2);
    }

让需要跟踪的物体localPosition跟踪该返回值即可实现跟踪鼠标

第一参数为当前屏幕mousePosition.x的最大值
第二参数为当前屏幕mousePosition.y的最大值
如果使用自动适配屏幕的像素点x与y的最大值,可以在第一第二参数传入Screen.widthScreen.height

第三参数和第四参数则为摄像机边框大小的宽/2高/2(目前未测试是否可以自动适配该参数)

使用该方法的优点是:算法开销较小,使用环境不苛刻
使用该方法的确定是:需要测量获得摄像机的宽和高进行传参

发表评论