公会列表中根据在线状态,职务,ID排序
2018-01-05 本文已影响0人
ljlord
规则是在线玩家显示在不在线玩家的上面,然后在线玩家和非在线玩家分别按照职务排序,如果职务相同则按ID排序。
当时做的时候是将玩家信息用Layout Group组件调整位置,所以排序完之后通过设置玩家信息在父节点的索引来改变位置。
调整位置 排序效果:
1 2 3还有一种方法是:玩家的职务都是对应一个int值,玩家在线给玩家的职务*ID的位数加一个比较大的数,比如(100000000),然后加上ID。这个时候比较就按照从大到小排列就好了。
比如 玩家A职务是 管理员(2) ID 是74 不在线 对应的值就是 2*1000+74 = 2074.
玩家B 职务是 普通成员(1) ID 是50 在线 对应的值是 100000000 + 1*1000+50 = 100001050
玩家C 管理员(2) ID 66 在线 值为 100000000 + 2*1000+66 = 100002066
这样直接按大小排序,就是最终要的顺序,不过有个问题是,玩家ID位数如果不是确定的,就会有问题。