公会列表中根据在线状态,职务,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位数如果不是确定的,就会有问题。

上一篇下一篇

猜你喜欢

热点阅读