1.先上效果
2.接着上代码
3.然后是面板结构,把对应的拖进脚本上的位置就行
4.最后解释下我的代码。(我只是实现了出来,并没有考虑代码优化什么的,如果需要优化只能自己去想了。)
Person类是定义想要的对象,可以继续往里添加。
然后我定义了两个按钮,一个image数组和text数组,对应面板结构里content下面的每个img(作为底纹背景)下面的icon和txt,一个常量即content下的子数目,还有个是当前的索引,因为我的项目需要在外面点击按钮才进入这个界面。
Start里我将高亮框的位置默认设置在最上面,两个按钮的监听,以及刚进入这个界面的列表的头像和名字的设置。
SetContentChildren方法就是设置content下的每个子物体所要显示的信息,只要传进来一个排序好的Person链表就行,如果链表长度小于等于childCount(上面的图忘改了),那么两个按钮就取消互动了。然后通过循环,设置显示内容。
ListSort方法是所有角色界面点击人物头像后,进入时根据对应的索引来选择一部分排序。
DownListSort和UpListSort方法则是当高亮框到底或到顶时继续点击向下或向上按钮时重新选择一部分排序。
GetPersonIndex方法是为了得到存储的索引,所以外界需要PlayerPrefs.SetInt一下才有值。
UpBtnClick和DownBtnClick方法则是在按钮点击时决定是移动高亮框还是需要重新设置显示内容。