Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
关于UI界面的网络对接问题
Everness发起了问答2017-06-08
4
回复
347
浏览

老师您好,现在我在学着写UI的联网逻辑。但是遇到了一些问题想请您帮忙指导下。

我使用的是ngui,通过proto文件进行网络数据的传输。

具体情况是我在写有关好友面板的网络逻辑,所以目前涉及到3个ui面板。

第一个面板:游戏的主面板,在这里负责点击按键进入好友面板。

第二个面板:好友面板,显示已有好友的信息、显示申请好友信息、显示附近搜索的玩家信息,点击按钮可以进入添加好友面板,在这个面板中可以删除好友、添加附近玩家为好友、确认申请的玩家为好友。

第三个面板:添加好友面板,这里可以按名字搜索玩家,添加玩家为好友,可以点击按键刷新此面板。

然后在信息上,大体的数据协议有

1、总体的好友面板数据,包括已有的好友信息和申请成为好友的玩家信息

2、删除好友用的bool返回值数据

3、按名字进行查找并返回的数据

4、搜索玩家的数据,可以用来刷新第三个面板

现在的问题是,我目前知道为了保证在每个面板确实的取得数据,所以需要把获取数据的回调函数写在上一个面板中。比如我通过第一个面板进入好友面板,所以我需要在第一个面板中就获取好友面板的信息,然后在进入好友面板同时刷出相应的列表。

但是像删除好友这类的信息我不太清楚应该写在那个层级的面板中。这个功能是在第二个面板中使用的,那么我是也把他的回调数据的函数写在上一个面板中吗?还是就直接写在当前面板中?

谢谢!

所有回复
  • siki 2017-06-09

    可以放在第二个面板里面, 因为第二个面板是管理好友的, 第一个面板应该是一个 总的入口,可以进入到各个面板

    所以可以放在第二个面板里面

    • Everness 2017-06-09

      那请问我还有一个问题,就是我有一条协议是返回服务器中随机搜索到的玩家的,然后在第二个面板需要通过点击按键调出第三个面板,同时显示这些搜索到的玩家。但是同时第三个面板里还有一个刷新按钮,可以刷新搜索到的玩家。这两个按钮用到的是同一条协议。但是为了使显示面板的同时就可以看到数据,我在第二个面板中就注册了这个协议的回调函数,同时这个函数中就已经存在创建第三个面板并且初始化的逻辑。
      现在的问题就是我不知道在第三个面板中这个刷新按钮的应该怎么处理,因为这个proto好像都是一对一的,所以现在我一点击刷新会再次出现一个新的第三个面板,导致有两个相同的面板重合。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-06-09

    有点不清楚你说的具体是什么

    proto不是一对一的吧

    点击刷新的话,你的数据存储在哪里的,然后重新取得数据,为什么说会重新出现一个面板呢

    • Everness 2017-06-13

      老师您好,这个问题我已经解决了,我说的proto的一对一是它的协议,比如我发送一个请求时使用的协议肯定是和传回数据的那个协议配对使用的,但是因为有的时候会出现单个和多个数据同时使用同一条协议的时候,比如添加一个玩家为好友和添加全部玩家为好友,都是使用同一个协议,但是这两个因为要刷新界面所以发送请求后的回调函数中的处理会有所不同。
      我想表达的就是这个意思,不知道我叙述清楚没。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!