欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity3D实现列表分页效果

程序员文章站 2023-09-06 16:24:45
本文实例为大家分享了unity3d实现列表分页效果的具体代码,供大家参考,具体内容如下using system.collections.generic;using unityengine; publi...

本文实例为大家分享了unity3d实现列表分页效果的具体代码,供大家参考,具体内容如下

using system.collections.generic;
using unityengine;
 
public class page : monobehaviour {
  public list<string> tips = new list<string>();
  public texture2d detailimg1;
  public texture2d detailimg2;
 
  private int pagecount = 0;//当前记录所需页数
  private static int currentpage = 1;//当前页码
 
  void ongui() {
    pagecount = mathf.ceiltoint(tips.count / 8.0f);//计算当前的页码总数
    int m_count = 0;//计算当前页的记录数
    if (currentpage != pagecount)//判断是否是最后一页,若不是则每页绘制8条记录
    {
      m_count = 8;
    }
    else {
      if (mathf.ceiltoint((tips.count + 1) / 8.0f) > pagecount)//判断最后一页是否有8条记录
      {
        m_count = 8;
      }
      else
      {
        m_count = tips.count % 8;//计算最后一页的记录数
      }
    }
 
    for (int i = 0; i < m_count; i++)
    {
      if (i % 2 == 0)
      {
        gui.drawtexture(new rect(268, 253 + i * 36, 487, 36), detailimg1);
      }
      else
      {
        gui.drawtexture(new rect(268, 253 + i * 36, 487, 36), detailimg2);
      }
      gui.label(new rect(310, 253 + i * 36, 300, 36), tips[(currentpage - 1) * 8 + i]);
    }
    //超过一页内容时,显示页码跳转
    if (pagecount > 1) {
      float temp = screen.width / 2 - pagecount / 2 * 20;
      for (int i = 1; i <= pagecount; ++i) {
        //更改按钮样式
        if (currentpage == i)
        {
          gui.backgroundcolor = color.red;
        }
        else
        {
          gui.backgroundcolor = color.white;
        }
        //绘制按钮
        if (gui.button(new rect(temp + 20 * i, 600, 20, 20), i.tostring())) {
          currentpage = i;//更改当前选中的页
        }
      }
    }
  }
}

Unity3D实现列表分页效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。