KBEngine游戏服务器(三)——制作自己的登陆客户端
一、开启服务器
参考专栏上一篇文章,打开那个MMO的服务器
二、创建一个新的Unity工程,导入插件
将上一篇文章提过的unity工程里的Plugins文件夹下的所有文件,拷贝到新项目的Plugins文件夹下。
三、在Unity场景中创建ClientApp
创建一个空物体名为ClientApp,创建一个脚本名为ClientApp,将脚本挂在空物体上,脚本代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using KBEngine;
public class ClientApp : KBEMain {
}
ClientApp继承了KBEMain,KBEMain是KBEngine已经写好的插件的入口模块,在这个入口中安装了需要监听的事件(installEvents),同时初始化KBEngine(initKBEngine)。
点击空物体ClientApp,即可在Inspector面板上看到一些相关配置,一律使用默认的即可,不用修改。
四、制作相关UI
添加一个Input Field名为name,下面的Placeholder的Text组件内容改为“登录名..”;
添加一个Input Field名为psw,下面的Placeholder的Text组件内容改为“密码..”;
添加一个Button名为login,下面的Text的Text组件内容改为“登陆”;
五、编写登陆代码
创建脚本名为LoginCtrl,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using KBEngine;
using UnityEngine.UI;
using System;
public class LoginCtrl : MonoBehaviour {
public InputField name;
public InputField psw;
// Use this for initialization
void Start () {
DontDestroyOnLoad(this.gameObject);
/*
注册监听由kbe插件抛出的事件。
*/
KBEngine.Event.registerOut("onConnectionState", this, "onConnectionState");//服务器连接状态
KBEngine.Event.registerOut("onLoginFailed", this, "onLoginFailed");//登录失败事件
}
//服务器连接状态回调
public void onConnectionState(bool success)
{
print("onConnectionState----------");
if (success) print("Login Successfully!");
else print("Login Error!");
}
//登录失败事件回调
public void onLoginFailed(UInt16 s)
{
print("Login Failed!");
}
//登陆按钮回调
public void onLogin()
{
print("user's name is :"+ name.text);
print("user's password is :" + psw.text);
KBEngine.Event.fireIn("login", name.text, psw.text, System.Text.Encoding.UTF8.GetBytes("KBEngine"));
}
}
需要比较注意的是fireIn和registerOut后面的eventName,写错的话,就得不到想要的回调触发了,至于eventName的定义和注释,我全局搜没有找到,猜测是在服务器源码里定义的。而LoginCtrl里的代码,都是可以在上一篇文章提到的unity项目中的UI.cs里找到的。另,新旧版本的事件名似乎是有些不同,我看一些博客上有个事件名叫onConnectStatus,而我下载的版本这个事件应该是叫onConnectionState。
六、登陆系统配置
创建一个空物体LoginCtrl,将LoginCtrl.cs挂上去,将第四点里面的UI拖过去
七、登陆
使用你在上一篇文章中注册的账号登陆,点击按钮能看到你print的文字“Login Successfully!”
如果忘记用户名,可以打开MySQL WorkBench,右键kbe-Tables-kbeaccountinfos,点击select rows查看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)