服务器架构(三)

1运行后点击按钮 在弹出登录界面 就是一个BUttten

 按住Shift 按比例缩放

 

 按下的时候的改变

 把密码改成星号:

 

 注册的界面:

 

 注册的时候:

 

 

 

信息提示的Panel

 

 关闭按钮:

 

所有UI框架 都有一个BasePanel
激活的状态托人:

 

有什么Panel 就在类型脚本定义出来:

路径存放与 Json文件里面

UIManger里的测试代码不需要 删除

只要你是Panel,身上就必须有一个脚本继承BasePanel脚本 

 预知体也是要应用挂的脚本
四个脚本都需要改:


先做MessagePanel  
要拿到Text组件
重写ONentenr()方法:

要显示具体信息:
给它添加一个方法:需要显示什么?

 

 一段时间后显示的信息 自动隐藏 ,添加一个隐藏的方法:
隐藏的时候慢慢的隐藏《有一个CreossFadeAlpa()方法:

 

从0开始到1,TimaeScale:不遵循


UImanger是所有Panel的领导,GameFacde再从UIManger 里面的东西 

MEssagePanel怎么拿到UIManger

 通过BasePanel去拿

 

在实例化的时候 拿到所有的Pnael
核心部分


生成的地方
在所有继承BasePanel  都拿到MessagePAnel

 


添加一个获取MEssagePanel 的方法:
把自己传过去

再有一个显示的方法:
如果没有 就returrn
有就调用 它自己来显示

 

 把自己再传过去

 

UIManger其他不能随意迪调用
要GameFacde来中转

 

 下边要做的时候 界面显示出来
场景中一个空无体 挂GameFacade脚本

 


没有了单列 要挂脚本 ,所以重写初始化
打开

 

 

 

 运行的时候 的错误

改正

运行结果:

 

需要实现按钮点击事件:
先绑定事件  如栈的时候绑定
拿到Button
注册上点击事件


通过UImanger 出战来显示 
因为所有Panel都继承了 BasePanel

所以直接
直接调用 出战

 

 

 运行结果:

 

拿到关闭按钮
通过找的方式
然后触发点击事件

 

关闭这个面板 
当它退出的时候:就关闭自己,

 

 那个LOgButton 是当它暂停的时候隐藏掉

 运行结果 

 

 因为

2的这个进去的时候 1就暂停了

可以点击开始登录 关闭后就消失了

早上的结果就如上图:
———————————————————————————————————————————

 先数据库里添加表

 

 

先拿到用户输入具体的值
登录按钮和祖册按钮

 

 找到输入框的按钮

 

log按钮

注册按钮
然后添加点击事件

 

密码账户不能为空 密码的要求等 前端就判定好

定义一个字符串,来事实显示输出的文字

 

当输入错误的时候:

 

运行结果 就值是显示一次

 

解决下边的这个问题
1,2一起显示了

因为调用了两次

 

就只有一个了

 

Resquade是找Controll 找到的类  不值到是什么 所以要把ActionCode(具体的事件)给i成它

 

 把RequestCode都改成 ActionCode

 属性改成保护

 

 这个脚本里的改地方

 

 

 

 处理 的时候

 

 接收的时候

解析的话时候

 

 客户端这边改完了
+++++++++++++++++++++++++++++++++++++
改服务器

发送的时候

 

 

 

 

 

启动服务器

结果没有错误

 

 

 上边问题解决了
——————————————————————————————————————
处理正真的登录
不管是登录注册 都是对用户 的
RequestConde 有一个User 类

 


更新这个 unity也更换

 

 

发送请求 在RequestManger脚本里面
创建新的脚本:
处理登录的:

向服务气发送re和ac 
 指定好

就去发送消息

创建一个新方法:

 

 把用户名和密码合并 
拆开id时候要有标记

 

 它是向服务器发送消息的

 

 创建一个向服务发送消息的方法,在Gamefacel就能得到ClientManger里的法熬发送了

 

 在baseRequest里拿到GameFacade

 

 这样就可以发送了

什么时候发送呢?
在点击了登录的时候,所以挂脚本

 

直接拿脚本

 

 客户端就先这样 接下来是服务器端口的处理
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
新加的脚本

 

 

 处理登录请求的方法也和ActionCode一样

 

 登录请求

 

 对数据库进行检查

创建一个类,,负责把数据存入它里面

 

 创建三个属性:负责读数据

 

 再创建一个类 具体来判断的

 

 一个判断的方法:

 用这个命令去检查:

 

查询读出来:

 

 构造成一个 user 读到的时候

没有独到的时候

 

 

 通过反射的时候 
为了拿到它 MYsql把它构造为属性:

 

 


登录的时候 需要返回成功失败 所以专门添加一个枚举类型

 

 先把data拆开:拆开方法

名字重 复修改一下

 


拿到DAO它是一个工具

 

 先把它转换为int类型再转换为字符串

 

有这个用户
就是成功返回

 

 服务器的判断就做完了++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 回到客户端 处理客户端响应

重写这个方法 判断是成功还是失败

 

重新跟新这个

 

 把它转为int类型 再强转为枚举类型


放到这个里面去判断 是否显示

 

用来判断接收的值是用来干什么的 新方法

 

 


整个的登录流程 就这样了 
先把服务器打开

再凯客户端

 

添加到数组的时候 报错了
 因为光写了字典 没有实例化

 

找数据库的时候包错误

 

报的错误

这句话的错误

 

 它现在这里面异步调用

 

移步调用相当于携程 UNity所有调用组件的方法 不能在异步的线程里面调用
只能主线成里调用

 就要把它放主线程里面

 

如果不等于空 就调用这个方法:

再添加一个异步显示信息的方法:

这个还是异步的

update  用一次后就为空  每次都是重头开始
结果为:只输出了一次 第二次不输出提示了

 

 在数据库里添加信息

结果为:

当再点击的时候 就不可以了 只能判断一次了  是个bug
是客户端的原因
没有中复接收

改成重复接收

第二次的时候就可以了

今天登录的功能就写完成了
,明天就写注册了

posted @ 2018-11-28 11:13  白纸菇凉  阅读(253)  评论(0编辑  收藏  举报