服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity ScrollView实现动态列表生成

Unity ScrollView实现动态列表生成

2022-09-05 14:13wdear0401 C#

这篇文章主要为大家详细介绍了Unity ScrollView实现动态列表生成,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

制作根据实时获取的数据动态改变的列表,ugui 的 scroll view 已经封装好了基本的参数,总结一些值得注意的地方和动态生成列表的方法。

在 canvas 创建 scroll view 后,基本结构如下。

Unity ScrollView实现动态列表生成

一. 注意两点:

1. content 下放自定义的列表内容,如这个 item 是名为“张三”的 button 预制件。(制作为 button 因为我的项目里需要点击列表项产生交互结果)

Unity ScrollView实现动态列表生成

2. 如果是顶部固定,往下依次延伸的列表,content 和里边自己的 item 中心锚点要一致,如下设置 anchors 的参数,锚点在content 和 item 的顶部正中

Unity ScrollView实现动态列表生成

二. 动态生成列表

主要计算每个新生成的 item 的位置,以及根据总体 item 个数更新 content 高度

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public void onitemcreat( int _count )
 {
  //销毁之前的生成的item,清除列表
  for (int i = 1; i < itemlist.count;i++ )
  {
   destroyimmediate(itemlist[i]);
  }
  itemlist.clear();
  
  //在 content 里生成 _count 个item
  if(_count > 0)
  {
   item.setactive(true); //第一个item实例已经放在列表第一个位置,直接激活
   itemlist.add(item);
   int i = 1;
   
   while(i<_count)
   {
    gameobject a = gameobject.instantiate(item) as gameobject;
    a.transform.parent = content.transform; //设置为 content 的子对象
    itemlist.add(a);
    recttransform t = itemlist[i - 1].getcomponent<recttransform>(); //获取前一个 item 的位置   
    //当前 item 位置放在在前一个 item 下方   
    a.getcomponent<recttransform>().localposition =
     new vector3(t.localposition.x, t.localposition.y - t.rect.height, t.localposition.z);
    a.getcomponent<recttransform>().localscale = new vector3(1, 1, 1);
    i++;
   }
   //根据当前 item 个数更新 content 高度
   content.getcomponent<recttransform>().sizedelta =
     new vector2(content.getcomponent<recttransform>().sizedelta.x, itemlist.count * itemheight);
  }
  else
  {  
   item.setactive(false); 
  }
 }

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

原文链接:https://blog.csdn.net/wdear0401/article/details/79520009

延伸 · 阅读

精彩推荐
  • C#C#配置文件操作类分享

    C#配置文件操作类分享

    这篇文章主要分享了C#配置文件操作类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    孤者自清6752022-01-11
  • C#WinForm天猫双11自动抢红包源码分享

    WinForm天猫双11自动抢红包源码分享

    这篇文章主要为大家分享了WinForm天猫双11自动抢红包源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    polk611112021-12-08
  • C#Unity C#打包AssetBundle与场景详解

    Unity C#打包AssetBundle与场景详解

    这篇文章主要给大家介绍了关于Unity C#打包AssetBundle与场景的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    冰封百度9972022-07-07
  • C#C#编程实现取整和取余的方法

    C#编程实现取整和取余的方法

    这篇文章主要介绍了C#编程实现取整和取余的方法,结合实例形式分析了C#中Math.Celling与Math.Floor函数的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以...

    清风远行8092021-11-03
  • C#C#实现绑定Combobox的方法

    C#实现绑定Combobox的方法

    这篇文章主要介绍了C#实现绑定Combobox的方法,涉及Combobox参数设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    我心依旧10672021-10-22
  • C#C#超市收银系统设计

    C#超市收银系统设计

    这篇文章主要为大家详细介绍了C#超市收银系统设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    懒懒的5152022-01-10
  • C#VS中模仿WPF模板创建最简单的WPF程序

    VS中模仿WPF模板创建最简单的WPF程序

    这篇文章主要为大家详细介绍了VS中模仿WPF模板创建最简单的WPF程序的相关资料,感兴趣的小伙伴们可以参考一下...

    小p8642021-11-21
  • C#C# 利用代理爬虫网页的实现方法

    C# 利用代理爬虫网页的实现方法

    这篇文章主要介绍了C# 利用代理爬网页的实现方法的相关资料,希望通过本能帮助到大家实现这样的功能,需要的朋友可以参考下...

    mimvp6142022-01-24