Unity ScrollView定位目标到视口中心

1、效果展示

2、主要代码

  /// <summary>
    /// 定位目标 到视口中心
    /// </summary>
    public void MoveToViewCenter(ScrollRect scrollRect, RectTransform itemTrans)
    {
        // 获取目标RectTransform和viewport的局部坐标边界
        Vector3[] itemCornersArray = new Vector3[4];
        itemTrans.GetWorldCorners(itemCornersArray);

        Vector3[] viewportCornersArray = new Vector3[4];
        scrollRect.viewport.GetWorldCorners(viewportCornersArray);

        // 转换世界坐标到内容局部坐标
        for (int i = 0; i < 4; i++)
        {
            itemCornersArray[i] = scrollRect.content.InverseTransformPoint(itemCornersArray[i]);
            viewportCornersArray[i] = scrollRect.content.InverseTransformPoint(viewportCornersArray[i]);
        }

        // 获取目标和视口的中心点
        Vector2 itemCenter = (itemCornersArray[0] + itemCornersArray[2]) / 2;
        Vector2 viewportCenter = (viewportCornersArray[0] + viewportCornersArray[2]) / 2;

        Vector2 contentPosition = scrollRect.content.anchoredPosition;

        // 计算目标元素中心与视口中心的差值
        Vector2 offset = viewportCenter - itemCenter;

        // 更新内容位置
        contentPosition += offset;
        scrollRect.content.anchoredPosition = contentPosition;
    }

怎样才能在Unity中实现Scroll View(滚动视图)的功能呢? 实现Scroll View的方法如下: 1.在Unity中新建一个空白场景。 2.在Hierarchy面板中,右键点击“Create Empty”并选择“UI->Scrollbar”。 3.将Scrollbar改名为“ScrollbarHorizontal”。 4.在Inspector面板中,将Direction属性设置为“Left To Right”。 5.在Hierarchy面板中,右键点击“ScrollbarHorizontal”,并选择“Duplicate”。 6.将Scrollbar2改名为“ScrollbarVertical”。 7.在Inspector面板中,将Direction属性设置为“Top To Bottom”。 8.在Hierarchy面板中,右键点击“Create Empty”,并选择“UI->Panel”。 9.将Panel重命名为“ScrollView”。 10.在Inspector面板中,将ScrollView的RectTransform的Anchor Presets设置为“Stretch Stretch”。这会将ScrollView铺满整个屏幕。 11.在Hierarchy面板中,将“ScrollbarHorizontal”和“ScrollbarVertical”拖拽到“ScrollView”下。 12.在Inspector面板中,将“ScrollbarHorizontal”和“ScrollbarVertical”的RectTransform的Anchor Presets设置为“Top Stretch”和“Left Stretch”分别。 13.在Hierarchy面板中,右键点击“Create Empty”,并选择“UI->Image”。 14.将Image改名为“ScrollContent”。 15.在Inspector面板中,将ScrollContent的RectTransform的Anchor Presets设置为“Top Stretch”和“Left Stretch”分别。 16.在Hierarchy面板中,将ScrollContent拖拽到“ScrollView”下。 17.将ScrollContent的RectTransform的位置设为(0,0,0)。 18.在Inspector面板中,设置ScrollView的“Horizontal Scrollbar Visibility”和“Vertical Scrollbar Visibility”属性为“Auto Hide And Expand View”。 19.将ScrollView的RectTransform的大小设为(500,500)。 现在,您已经成功地在Unity中创建了一个Scroll View,并可以在其中滚动视口中浏览内容了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值