成都创新互联网站制作重庆分公司

Unity实现轮盘方式的按钮滚动效果-创新互联

近期在项目中,策划给出了一个需求就是,让按钮按照一个轮盘的轨迹进行滑动的效果,经过一番测试,实现了初步的效果。

创新互联建站从2013年创立,是专业互联网技术服务公司,拥有项目成都做网站、网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元滕州做网站,已为上家服务,为滕州各地企业和个人服务,联系电话:18980820575

我这里区分了横向滑动和纵向滑动,这里以纵向滑动为例子进行示范,实现按钮的滑动效果。

首先就是先进行位置初始化:

 /// 
  ///从大到小排序,Y轴
  /// 
  private Comparison ComparisionY =
    delegate (CircleScrollRectItemBase itemA, CircleScrollRectItemBase itemB)
    {
      if (itemA.transform.localPosition.y == itemB.transform.localPosition.y) return 0;
      return (itemA.transform.localPosition.y > itemB.transform.localPosition.y) ? -1 : 1;
    };
 
 
   public void Init()
   {
    if (null == listItems || listItems.Length == 0)
    {
      return;
    }
 
    if (itemPostions != null && itemPostions.Length > 0)
    {
      for (int i = 0; i < itemPostions.Length; i++)
      {
        listItems[i].transform.localPosition = itemPostions[i];
      }
    }
 
    //XY轴排序按不同方式排序,可以统一使用共同的函数
    if (horizontal)
    {
      //位置从小到大排序
      Array.Sort(listItems, ComparisionX);
    }
    else
    {
      //位置从大到小排序
      Array.Sort(listItems, ComparisionY);
    }
    //设置元素关系及固定位置
    itemPostions = new Vector3[listItems.Length];
    for (int i = 0; i < listItems.Length; ++i)
    {
      listItems[i].SetItemConfig(i, //set id
                    listItems[(i + 1) % listItems.Length], //next item
                    listItems[(i - 1 + listItems.Length) % listItems.Length]); //previous item
 
      itemPostions[i] = new Vector3(listItems[i].transform.localPosition.x,
                      listItems[i].transform.localPosition.y,
                       listItems[i].transform.localPosition.z);
      listItems[i].currPosIndex = i;
    }
    RefreshContentListLength();
    GetCurrPointItem();
    InitValue();
  }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:Unity实现轮盘方式的按钮滚动效果-创新互联
网页链接:http://cxhlcq.com/article/cdsgsg.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部