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查看

 

 

 

posted @   Domefy  阅读(393)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示