服务器架构(三)
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
是客户端的原因
没有中复接收
改成重复接收
第二次的时候就可以了
今天登录的功能就写完成了
,明天就写注册了