首页 > 软件开发 > 编程语言 >

UGUI:实现ScrollRect拖动到最底添加下一页内容

来源:互联网 2023-03-17 00:27:57 190

如果ScrollRect的内容是分页设计的,想实现ScrollRect拖动到最底端再获取下一页,如果实现呢,见下文。1g5办公区 - 实用经验教程分享!

工具/原料

  • Unity

方法/步骤

  • 1

    打开Unity3D后,单击菜单GameObject->UI->Panel,创建一个Panel。如下图:1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 2

    创建好Panel之后,选中Canvas,单击鼠标右键,选中UI->Scrollbar,创建一个ScrollBar。1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 3

    把scrollbar的Direction设置成Bottom To Top如下图:1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 4

    在刚刚创建好的Panel下添加ScrollRect和Mask组件,添加方法如下图:1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 5

    添加好ScrollRect后,把之前创建好的ScrollBar拖到ScrollRect的Vertical Scrollbar上。如下图:1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 6

    选中Panel,右键单击鼠标,选中CreateEmpty,将创建的新对象命名为grid1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 7

    在grid下添加Grid Layout Group和Content Size Fitter组件,并如下设置。1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 8

    选中Panel,单击鼠标右键,选择UI->Panel,并将创建好的Panel命名为Item1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 9

    选中刚刚创建好的Item,单击鼠标右键,选择UI->Text,创建Text1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 10

    创建一个脚本文件,命名为ItemControl.cs1g5办公区 - 实用经验教程分享!

    输入一下内容:1g5办公区 - 实用经验教程分享!

    using UnityEngine;1g5办公区 - 实用经验教程分享!

    using System.Collections;1g5办公区 - 实用经验教程分享!

    using UnityEngine.UI;1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public class ItemControl : MonoBehaviour {1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    private Text labText;1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public void setItem(string str)1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    labText = transform.GetComponentInChildrenText>();1g5办公区 - 实用经验教程分享!

    labText.text = str;1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 10此文章未经授权抓取自百度经验
  • 11

    将ItemControl.cs添加到Item上,如下图1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 12

    创建脚本ScrollRectControl.cs1g5办公区 - 实用经验教程分享!

    输入一下内容:1g5办公区 - 实用经验教程分享!

    using UnityEngine;1g5办公区 - 实用经验教程分享!

    using System.Collections;1g5办公区 - 实用经验教程分享!

    using UnityEngine.UI;1g5办公区 - 实用经验教程分享!

    using UnityEngine.EventSystems;1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public class ScrollRectControl : MonoBehaviour, IEndDragHandler1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public Scrollbar bar;1g5办公区 - 实用经验教程分享!

    private ScrollRect scrollRect;1g5办公区 - 实用经验教程分享!

    private GameObject item;1g5办公区 - 实用经验教程分享!

    private GameObject grid;1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    void Start()1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    scrollRect = transform.GetComponentScrollRect>();1g5办公区 - 实用经验教程分享!

    item = transform.FindChild("Item").gameObject;1g5办公区 - 实用经验教程分享!

    grid = transform.FindChild("grid").gameObject;1g5办公区 - 实用经验教程分享!

    addItem();1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public void OnEndDrag(PointerEventData eventData)1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    if (bar.value = 0)1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    addItem();1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    void addItem()1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    for (int i = 0; i 5; i )1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    GameObject newItem = addChild(item, grid);1g5办公区 - 实用经验教程分享!

    newItem.SetActive(true);1g5办公区 - 实用经验教程分享!

    string str = string.Format("第{0}项时间为{1}",i,System.DateTime.Now);1g5办公区 - 实用经验教程分享!

    newItem.GetComponentItemControl>().setItem(str);1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    public static GameObject addChild(GameObject o, GameObject parent)1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    if (o == null || parent == null)1g5办公区 - 实用经验教程分享!

    {1g5办公区 - 实用经验教程分享!

    return null;1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    1g5办公区 - 实用经验教程分享!

    GameObject inst = GameObject.Instantiate(o) as GameObject;1g5办公区 - 实用经验教程分享!

    inst.transform.SetParent(parent.transform, false);1g5办公区 - 实用经验教程分享!

    inst.transform.localPosition = Vector3.zero;1g5办公区 - 实用经验教程分享!

    inst.transform.localScale = Vector3.one;1g5办公区 - 实用经验教程分享!

    return inst;1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    }1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 13

    将ScrollRectControl.cs添加到Panel上,并将Scrollbar拖到ScrollRectControl的Bar上,如下图:1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 14

    运行,看效果:1g5办公区 - 实用经验教程分享!

    刚运行时,添加了5个Item项,当拖动到ScrollRect末尾时,又添加了5个Item项。是不是很简单。1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

    UGUI:实现ScrollRect拖动到最底添加下一页内容1g5办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!1g5办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码