好友系统有两个特殊性,一个是需要让客户端接受添加好友的请求,发送请求响应。
二是在服务器端添加后处理器,作用是在发送响应给客户端前,可以往后处理器里添加一些通用的方法,将一些需要时常刷新的消息(例如新的好友列表)添加到响应里,顺路一起发送给客户端。
客户端:
先在客户端拼好UI,使用了之前的ListView加ListView.Item的方法,详细可以看任务系统,暂时不赘述。书写刷新UI的方法,并且注册给FriendService的OnFriendUpdate,只要有数据变化就刷新列表。先清空,再重置数据,数据从FriendManager中取得,该方法的数据会在角色进入游戏时(OnGameEnter方法)初始化,主要存储了该角色的好友相关信息。
刷新UI的方法与其他大同小异,Instantiate 绑定的Prefab 并且生成在指定区域。
然后为增加好友的按钮绑定上InputBox方法,InputBox.Show()出现输入框,.OnSubmit是点击确认后的事件。
public void OnClickFriendAdd() {
InputBox.Show("添加好友", "输入要添加的好友名称或者ID").OnSubmit+=OnFriendAddSubmit;
//OnFriendAddSubmit(string input, out string tips)
}
OnFriendAddSubmit方法会将输入框的字符串提交到FriendService.Instance.SendFriendAddRequest(friendId,friendName);
并且在InputBox内部将tips的字符串赋在输入框的提示text上。
而后,FriendService会构造一个FriendAddRequest()请求,将自身ID与被请求者ID发送至服务器端。
经过服务器端处理后,将会收到OnFriendAddResponse的响应,并且根据响应的结果是成功与否,调用MessageBox显示出有是与否按钮的消息框,给是与否的按钮绑定SendFriendAddRes

最低0.47元/天 解锁文章
683





