1.从客户端向服务器发送请求,并且与服务器约定好,入参的值与排行榜类型对应上,比如1 对应 战斗力排行榜,2 对应 荣誉值排行榜 等。
2.从服务器将排列好的排行榜字符串传给客户端,客户端与服务器约定好字符串的格式, 每个名单之间用什么分隔开等等。
3.客户端解析排行榜字符串,将数据存储到List的列表中
4.在排行榜中,将排行榜中的单个排名展示板做成预置,在预置上挂上存储此预置中用来显示单个排名的指定组件,这样就可以在每次实例预置时,在脚本中控制预置上面的显示内容,并且有多少就实例化多少,互相不会干扰
5.每次实例预置时,将预置实例化到带有UIGrid脚本的游戏对象下面,当全部实例化好后,在脚本中调用下UIGrid脚本的方法Reposition(),用来将实例化好的排名面板按实例化顺序排列好
以上为简单的展示排行榜,一下为优化
6.当点击不同类的排行榜时,面板会一直实例化,将以前排行榜中的信息全部加到了一起,因此,我们需要判断下排行榜列表中 是否已经实例化了面板。
GameObject buttonItemObj = null;
if (topListParentObj.transform.childCount < count )
{
buttonItemObj = (GameObject)Instantiate(GetTopChemistryButtonTemplatePrefab());//如果没有实例化,则进行实例化
}
else
{
buttonItemObj = topListParentObj.transform.GetChild(i).gameObject;//如果已经实例化,则将实例化的面板信息修改成指定排行榜下的排名信息
}