首页 > 代码库 > KBEngine warring项目源码阅读(一) 项目简介和注册登录
KBEngine warring项目源码阅读(一) 项目简介和注册登录
首先介绍下warring项目,是kbe自带的一个演示示例,大部分人了解kbe引擎也是从warring项目开始的。
项目地址:https://github.com/kbengine/kbengine_unity3d_warring
项目截图:
项目的下载和安装不再多说,现在开始进入代码讲解阶段:
注册:
可以看到控件绑定代码为reg_ok,点进去
1 void reg_ok() 2 { 3 log_label.obj.text = "请求连接服务器..."; 4 log_label.obj.color = UnityEngine.Color.green; 5 6 if(reg_username.input.text == "" || reg_username.input.text.Length > 30) 7 { 8 log_label.obj.color = UnityEngine.Color.red; 9 log_label.obj.text = "用户名或者邮箱地址不合法, 最大长度限制30个字符。"; 10 Common.WARNING_MSG("ui::reg_ok: invalid username!"); 11 return; 12 } 13 14 if(reg_password.input.text.Length < 6 || reg_password.input.text.Length > 16) 15 { 16 log_label.obj.color = UnityEngine.Color.red; 17 log_label.obj.text = "密码不合法, 长度限制在6~16位之间。"; 18 Common.WARNING_MSG("ui::reg_ok: invalid reg_password!"); 19 return; 20 } 21 22 if(reg_password.input.text != reg_passwordok.input.text) 23 { 24 log_label.obj.color = UnityEngine.Color.red; 25 log_label.obj.text = "二次输入密码不匹配。"; 26 Common.WARNING_MSG("ui::reg_ok: reg_password != reg_passwordok!"); 27 return; 28 } 29 30 KBEngine.Event.fireIn("createAccount", reg_username.input.text, reg_passwordok.input.text, System.Text.Encoding.UTF8.GetBytes("kbengine_unity_warring")); 31 log_label.obj.text = "连接成功,等待处理请稍后..."; 32 }
可以看到接下来是fireIn("createAccount",xxxx,...)
这里需要讲解一下客户端的fireIn和fireOut是怎么一回事,fireIn是指u3d脚本层触发一个事件给kbe插件执行,fireOut是是插件向u3d脚本层触发的事件,总之是从unity到kbe插件的一个交互过程。既然是插件层层,那么我们打开KBEngine.cs去找对应的registerIn,可以找到下面的代码
1 void installEvents() 2 { 3 Event.registerIn("createAccount", this, "createAccount"); 4 Event.registerIn("login", this, "login"); 5 Event.registerIn("reloginBaseapp", this, "reloginBaseapp"); 6 Event.registerIn("resetPassword", this, "resetPassword"); 7 Event.registerIn("bindAccountEmail", this, "bindAccountEmail"); 8 Event.registerIn("newPassword", this, "newPassword"); 9 10 // 内部事件 11 Event.registerIn("_closeNetwork", this, "_closeNetwork"); 12 }
然后在同一文件的第727行,找到对应的消息,可以看到下一步是调用的createAccount_loginapp(false)函数
点开进去
1 /* 2 创建账号,通过loginapp 3 */ 4 public void createAccount_loginapp(bool noconnect) 5 { 6 if(noconnect) 7 { 8 reset(); 9 _networkInterface.connectTo(_args.ip, _args.port, onConnectTo_createAccount_callback, null); 10 } 11 else 12 { 13 Bundle bundle = Bundle.createObject(); 14 bundle.newMessage(Message.messages["Loginapp_reqCreateAccount"]); 15 bundle.writeString(username); 16 bundle.writeString(password); 17 //string imei = ‘AET89766-124‘; 18 //bundle.writeString(imei); 19 bundle.writeBlob(KBEngineApp.app._clientdatas); 20 bundle.send(_networkInterface); 21 } 22 }
可以看到这里开始给后端发了一个消息,消息关键字是Loginapp_reqCreateAccount。我们打开kbe的C++部分源码
KBEngine warring项目源码阅读(一) 项目简介和注册登录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。