环信IM SDK可以帮助用户快速开发
IM
相关的应用,被称业界最全SDK矩阵,支持Android、iOS、macOS、Windows、Linux、Web、Flutter、Unity
、Electron、React Native、Uni-App、ApiCloud等12大SDK,提供了泛娱乐社交、教育行业、智能硬件、社交电商、游戏娱乐等行业解决方案,核心功能包括用户管理
、单聊
、群聊
等聊天模型、短信服务等等。官网地址:环信[1]
本文介绍如何接入环信IM Unity SDK来实现用户的登录
与注册
功能。
环信IM Unity SDK
核心功能
•登录环信即时通讯云控制台
,没有账号的话就先注册一下
控制台
•创建项目应用
创建应用
•查看应用详情,获取AppKey
应用详情
•下载Unity SDK
并导入到项目中
Unity SDK
在调用环信IM SDK中的注册与登录接口前,需要先进行初始化
,如下所示,其中appkey在控制台应用详情中获取:
// 设置 Appkey
Options options = new Options(appKey: "easemob-demo#easeim");
// 初始化 sdk
SDKClient.Instance.InitWithOptions(options);
SDKClient.Instance.CreateAccount("username", "password", new CallBack(
onSuccess: () => {
Debug.Log("执行成功");
},
onError: (code, desc) => {
Debug.Log($"错误码 -- {code}");
Debug.Log($"错误描述 -- {desc}");
}
));
•username
:用户名•password
:密码•handle
:回调函数•onSuccess
:注册成功事件•onError
:注册失败事件•code
:错误码•desc
:错误描述
代码示例:
using UnityEngine;
using UnityEngine.UI;
using ChatSDK;
using SK.Framework;
namespace Metaverse
{
/// <summary>
/// 登录视图
/// </summary>
public class LoginView : UIView
{
//用户名输入框
[SerializeField] private InputField usernameInput;
//密码输入框
[SerializeField] private InputField passwordInput;
//注册按钮点击事件
public void OnSignUpButtonClick()
{
if (string.IsNullOrEmpty(usernameInput.text))
{
Load<PopupView>(new PopupData("提示", "请输入用户名"));
return;
}
if (string.IsNullOrEmpty(passwordInput.text))
{
Load<PopupView>(new PopupData("提示", "请输入密码"));
return;
}
if (usernameInput.text.Length < 6 || passwordInput.text.Length < 6)
{
Load<PopupView>(new PopupData("提示", "用户名或密码长度不小于6"));
return;
}
//注册
SDKClient.Instance.CreateAccount(username: usernameInput.text, password: passwordInput.text,
handle: new CallBack(onSuccess: () =>
{
Log.Info("注册成功");
Load<PopupView>(new PopupData("提示", "注册成功"));
//清空输入框
usernameInput.text = string.Empty;
passwordInput.text = string.Empty;
},
onError: (code, desc) =>
{
Log.Info("错误码:{0}", code);
Log.Info("错误描述:{0}", desc);
Load<PopupView>(new PopupData("错误", desc));
}));
}
}
}
注册成功
User already exist
SDKClient.Instance.Login("username", "pwdOrToken", handle: new CallBack(
onSuccess: () => {
Debug.Log("执行成功");
},
onError: (code, desc) =>
{
Debug.Log($"错误码 -- {code}");
Debug.Log($"错误描述 -- {desc}");
}
));
}
•username
:用户名•pwdOrToken
:密码或token•handle
:回调函数•onSuccess
:登录成功事件•onError
:登录失败事件•code
:错误码•desc
:错误描述
代码示例:
using UnityEngine;
using UnityEngine.UI;
using ChatSDK;
using SK.Framework;
namespace Metaverse
{
/// <summary>
/// 登录视图
/// </summary>
public class LoginView : UIView
{
//用户名输入框
[SerializeField] private InputField usernameInput;
//密码输入框
[SerializeField] private InputField passwordInput;
//登录按钮点击事件
public void OnSignInButtonClick()
{
if (string.IsNullOrEmpty(usernameInput.text))
{
Load<PopupView>(new PopupData("提示", "请输入用户名"));
return;
}
if (string.IsNullOrEmpty(passwordInput.text))
{
Load<PopupView>(new PopupData("提示", "请输入密码"));
return;
}
if (usernameInput.text.Length < 6 || passwordInput.text.Length < 6)
{
Load<PopupView>(new PopupData("提示", "用户名或密码长度不小于6"));
return;
}
//登录
SDKClient.Instance.Login(username: usernameInput.text, pwdOrToken: passwordInput.text,
handle: new CallBack(onSuccess: () =>
{
Log.Info("登录成功");
//切换到大厅流程
StateMachine.Get(StateMachineName.GameProcedure).Switch(typeof(ProcedureHall).Name);
},
onError: (code, desc) =>
{
Log.Info("错误码:{0}", code);
Log.Info("错误描述:{0}", desc);
Load<PopupView>(new PopupData("错误", desc));
}));
}
}
}
账号或密码错误
在控制台中进行用户管理
:
用户管理
[1]
环信: https://www.easemob.com/