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

简介: Unity接入环信IM SDK,实现用户登录与注册功能。

🎈 环信IM SDK

🔸 简介

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

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

环信IM Unity SDK
核心功能

🔸 接入流程

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

控制台

  • 创建项目应用

创建应用

  • 查看应用详情,获取AppKey

应用详情

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

Unity SDK

🎈 注册与登录功能实现

🔸 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));
                }));
        }
    }
}

账号或密码错误
在控制台中进行用户管理

用户管理

目录
相关文章
|
前端开发 开发工具 图形学
PicoVR Unity SDK⭐️三、详解与UI的交互方式
PicoVR Unity SDK⭐️三、详解与UI的交互方式
|
API 开发工具 图形学
PicoVR Unity SDK⭐️五、常用API接口函数一览
PicoVR Unity SDK⭐️五、常用API接口函数一览
|
开发工具 图形学 Android开发
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
|
开发工具 vr&ar 图形学
PicoVR Unity SDK⭐️四、基础传送方式详解
PicoVR Unity SDK⭐️四、基础传送方式详解
|
API 开发工具 vr&ar
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
|
开发工具 图形学 iOS开发
Unity与IOS⭐Unity接入IOS SDK的流程图
Unity与IOS⭐Unity接入IOS SDK的流程图
|
开发工具 图形学 Android开发
Pico Neo 3教程☀️ 二、从 PicoVR Unity SDK 迁移至 Unity XR SDK
Pico Neo 3教程☀️ 二、从 PicoVR Unity SDK 迁移至 Unity XR SDK
|
26天前
|
网络协议 NoSQL API
转转客服IM系统的WebSocket集群架构设计和部署方案
客服IM系统是转转自研的在线客服系统,是用户和转转客服沟通的重要工具,主要包括机器人客服、人工客服、会话分配、技能组管理等功能。在这套系统中,我们使用了很多开源框架和中间件,今天讲一下客服IM系统中WebSocket集群的的实践和应用。
94 0
|
3月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
178 1
|
3月前
|
测试技术 Go
客服系统程序入口文件解析-唯一客服系统源码开发
该代码为 Go 语言编写的客服系统命令行程序入口,结构清晰,使用 cmd 包启动业务逻辑,可能基于 cobra 框架实现,具备良好可扩展性与可维护性,适用于服务启动与管理。
171 69

热门文章

最新文章