83 lines
3.7 KiB
Markdown
83 lines
3.7 KiB
Markdown
对应雷达顶点的,初始化脚本逻辑
|
||
|
||
![[Pasted image 20240326155625.png]]
|
||
|
||
清理顶点逻辑,是简单遍历一下顶点合集,销毁即可,用了foreach遍历,所以不能销毁RectTransform本身
|
||
|
||
![[Pasted image 20240326155651.png]]
|
||
|
||
实例化新的顶点,设置一下父物体,再添加RectTransform组件,它是有anchoredPosition锚点坐标这个参数可用
|
||
|
||
![[Pasted image 20240326155807.png]]
|
||
|
||
计算雷达图顶点,对应的锚点坐标值,使用了圆周率Pi和Cos、Sin三角函数转换角度,得到对应的顶点锚点坐标,完成赋值即可
|
||
|
||
![[Pasted image 20240326160011.png]]
|
||
|
||
然后,初始化可操作顶点的函数接口,和初始化雷达图顶点,对应的各个逻辑接口,是基本一样的
|
||
|
||
![[Pasted image 20240326160857.png]]
|
||
|
||
也是清理,重新创建,添加RectTransform组件,设置父物体,然后修改图片引用、颜色、尺寸、缩放等逻辑
|
||
|
||
![[Pasted image 20240326161000.png]]
|
||
|
||
可操作点的,设置坐标,是根据顶点来的,而且还有_handlerRadio比例参数相乘
|
||
|
||
![[Pasted image 20240326161056.png]]
|
||
|
||
对应的是,每个顶点的比例
|
||
|
||
![[Pasted image 20240326161147.png]]
|
||
|
||
如果修改成 1:1比例,再重新生成,可操作顶点的位置,就和雷达图顶点的位置,完全重合一致了
|
||
|
||
![[Pasted image 20240326161422.png]]
|
||
|
||
运行游戏,拖曳可操作顶点;
|
||
可以看到,因为顶点合集,在AddVerts函数中,是和可操作顶点的锚点坐标绑定的,所以也会跟着重绘渲染;
|
||
|
||
复习这里;
|
||
|
||
![[Pasted image 20240326161939.png]]
|
||
|
||
![[Pasted image 20240326161529.png]]
|
||
|
||
可操作顶点的拖曳逻辑,也就是配合个体,自适应缩放,修改锚点即可,参考[[Transform.lossyScale]]
|
||
|
||
![[Pasted image 20240326161800.png]]
|
||
|
||
这个场景,是实现了,无限滚动列表的相关逻辑,如果是默认的Scroll View滑动列表,就是直接拖曳,多个实体,实现的
|
||
|
||
![[Pasted image 20240326170154.png]]
|
||
|
||
先取消场景修改
|
||
|
||
![[Pasted image 20240326170455.png]]
|
||
|
||
运行游戏,这个是通过逻辑,实现了有限列表实体,实现无限列表的显示效果
|
||
|
||
![[Pasted image 20240326170532.png]]
|
||
|
||
其中,单个滑动条节点,会分成两个不同的逻辑体,分别是LoopListItemModel结构,是用来存储,对应图片和装备描述,在构造函数中,会有赋值操作
|
||
|
||
![[Pasted image 20240326170703.png]]
|
||
|
||
单个滑动条节点,另一个,就是LoopListItem逻辑实体,继承自MonoBehaviour,通过_id作为位置标识信息,再弄两个获取器,是用来获取RectTransform坐标信息,Image图片信息
|
||
|
||
![[Pasted image 20240326170814.png]]
|
||
|
||
还有装备描述获取器,Fuc委托函数,是通过LoopListItemModel集合,和对应索引,获取到对应的节点数据,包括图片引用和装备描述,具体逻辑,后续会解析;
|
||
Init初始化函数中,先各个实例化赋值,然后调用ChangeId函数,根据子节点,在滑动条中的具体位置,计算出对应的顺序节点索引,赋值即可;
|
||
|
||
![[Pasted image 20240326170954.png]]
|
||
|
||
对应的具体逻辑,根据id索引传参,完成位置索引_id的赋值;
|
||
通过id索引,拿到数据合集类,对应的图片引用和文本描述数据;
|
||
SetPos函数,是设置该子节点,对应的锚点坐标anchoredPosition,根据id和实体height高度加上,_offset偏移;
|
||
|
||
![[Pasted image 20240326171602.png]]
|
||
|
||
上述修改Id的函数,还调用了,检查数据是否合法的,函数接口JudgeIdValid,也就是判断,从总的数据合集容器中,通过Equals判断是否等于,重新实例化一个数据节点LoopListItemModel,去得到合法判定结果
|
||
|
||
![[Pasted image 20240326172420.png]] |