写点什么

Unity Metaverse(四)、接入环信 IM SDK 实现用户登录注册

作者:CoderZ
  • 2022 年 8 月 08 日
  • 本文字数:2530 字

    阅读完需:约 8 分钟

Unity Metaverse(四)、接入环信IM SDK 实现用户登录注册

🎈 环信 IM SDK

🔸 简介

环信 IM SDK 可以帮助用户快速开发IM相关的应用,被称业界最全 SDK 矩阵,支持 Android、iOS、macOS、Windows、Linux、Web、Flutter、Unity、Electron、React Native、Uni-App、ApiCloud 等 12 大 SDK,提供了泛娱乐社交、教育行业、智能硬件、社交电商、游戏娱乐等行业解决方案,核心功能包括用户管理单聊群聊等聊天模型、短信服务等等。官网地址:环信


本文介绍如何接入环信 IM Unity SDK 来实现用户的登录注册功能。


环信IM Unity SDK


核心功能

🔸 接入流程

  • 登录环信即时通讯云控制台,没有账号的话就先注册一下


控制台


  • 创建项目应用


创建应用


  • 查看应用详情,获取AppKey


应用详情


  • 下载Unity SDK 并导入到项目中


Unity SDK

🎈 注册与登录功能实现

🔸 SDK 初始化

在调用环信 IM SDK 中的注册与登录接口前,需要先进行初始化,如下所示,其中 appkey 在控制台应用详情中获取:


// 设置 AppkeyOptions options = new Options(appKey: "easemob-demo#easeim");// 初始化 sdkSDKClient.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)); })); } }}
复制代码


账号或密码错误


在控制台中进行用户管理


用户管理


发布于: 刚刚阅读数: 2
用户头像

CoderZ

关注

还未添加个人签名 2022.08.04 加入

一名Unity3d开发工程师,SKFramework开源框架作者,CSDN博客专家、Unity领域优质创作者,从事游戏、VR/AR/MR、虚拟仿真、数字孪生、元宇宙等相关项目开发。个人微信公众号:当代野生程序猿。

评论

发布
暂无评论
Unity Metaverse(四)、接入环信IM SDK 实现用户登录注册_Unity_CoderZ_InfoQ写作社区