前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity Metaverse(四)、接入环信IM SDK 实现用户登录注册

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

作者头像
CoderZ
发布2022-08-29 17:22:59
8010
发布2022-08-29 17:22:59
举报
文章被收录于专栏:用户10004205的专栏

🎈 环信IM SDK

🔸 简介

环信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

🎈 注册与登录功能实现

🔸 SDK初始化

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

代码语言:javascript
复制
// 设置 Appkey
Options options = new Options(appKey: "easemob-demo#easeim");
// 初始化 sdk
SDKClient.Instance.InitWithOptions(options);

🔸 注册接口

代码语言:javascript
复制
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:错误描述

代码示例:

代码语言:javascript
复制
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

🔸 登录接口

代码语言:javascript
复制
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:错误描述

代码示例:

代码语言:javascript
复制
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));
                }));
        }
    }
}

账号或密码错误

在控制台中进行用户管理

用户管理

References

[1] 环信: https://www.easemob.com/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🎈 环信IM SDK
    • 🔸 简介
      • 🔸 接入流程
      • 🎈 注册与登录功能实现
        • 🔸 SDK初始化
          • 🔸 注册接口
            • 🔸 登录接口
              • References
          相关产品与服务
          短信
          腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档