对应雷达顶点的,初始化脚本逻辑

清理顶点逻辑,是简单遍历一下顶点合集,销毁即可,用了foreach遍历,所以不能销毁RectTransform本身

实例化新的顶点,设置一下父物体,再添加RectTransform组件,它是有anchoredPosition锚点坐标这个参数可用

计算雷达图顶点,对应的锚点坐标值,使用了圆周率Pi和Cos、Sin三角函数转换角度,得到对应的顶点锚点坐标,完成赋值即可

然后,初始化可操作顶点的函数接口,和初始化雷达图顶点,对应的各个逻辑接口,是基本一样的

也是清理,重新创建,添加RectTransform组件,设置父物体,然后修改图片引用、颜色、尺寸、缩放等逻辑

可操作点的,设置坐标,是根据顶点来的,而且还有_handlerRadio比例参数相乘

对应的是,每个顶点的比例

如果修改成 1:1比例,再重新生成,可操作顶点的位置,就和雷达图顶点的位置,完全重合一致了

运行游戏,拖曳可操作顶点; 可以看到,因为顶点合集,在AddVerts函数中,是和可操作顶点的锚点坐标绑定的,所以也会跟着重绘渲染;

复习这里;

可操作顶点的拖曳逻辑,也就是配合个体,自适应缩放,修改锚点即可,参考Transform.lossyScale

这个场景,是实现了,无限滚动列表的相关逻辑,如果是默认的Scroll View滑动列表,就是直接拖曳,多个实体,实现的

先取消场景修改

运行游戏,这个是通过逻辑,实现了有限列表实体,实现无限列表的显示效果

其中,单个滑动条节点,会分成两个不同的逻辑体,分别是LoopListItemModel结构,是用来存储,对应图片和装备描述,在构造函数中,会有赋值操作

单个滑动条节点,另一个,就是LoopListItem逻辑实体,继承自MonoBehaviour,通过_id作为位置标识信息,再弄两个获取器,是用来获取RectTransform坐标信息,Image图片信息

还有装备描述获取器,Fuc委托函数,是通过LoopListItemModel集合,和对应索引,获取到对应的节点数据,包括图片引用和装备描述,具体逻辑,后续会解析; Init初始化函数中,先各个实例化赋值,然后调用ChangeId函数,根据子节点,在滑动条中的具体位置,计算出对应的顺序节点索引,赋值即可;

对应的具体逻辑,根据id索引传参,完成位置索引_id的赋值; 通过id索引,拿到数据合集类,对应的图片引用和文本描述数据; SetPos函数,是设置该子节点,对应的锚点坐标anchoredPosition,根据id和实体height高度加上,_offset偏移;

上述修改Id的函数,还调用了,检查数据是否合法的,函数接口JudgeIdValid,也就是判断,从总的数据合集容器中,通过Equals判断是否等于,重新实例化一个数据节点LoopListItemModel,去得到合法判定结果