网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Unity实现注册登录模块的方法

小编给大家分享一下Unity实现注册登录模块的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联是一家专注于网站设计、成都网站设计与策划设计,乌兰网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:乌兰等地区。乌兰做网站价格咨询:18982081108

使用Zenject和UniRx的入门级技术实现了伪登录注册功能。

运行效果

Unity实现注册登录模块的方法

登录面板

using System;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
using Zenject;

public class LoginPanel : MonoBehaviour
{
 public InputField userName;
 public InputField password;
 public Button LoginBtn;
 public Button RegistBtn;
 [Inject] private User _user;
 
 
 [Inject] private TipPanel _tipPanel;
 [Inject] private RegistPanel _registPanel;
 void Start()
 {
 //用户名输入完成后光标自动跳转到密码输入框
 userName.OnEndEditAsObservable()
 .Subscribe((s =>
 password.Select()));
 //输入完密码后敲击回车键或者点击登录按钮 都触发登录事件
 var enterDownStream = password.OnEndEditAsObservable()
 .Select((s => "回车键触发登录"));
 var loginBtnStream = LoginBtn.OnClickAsObservable()
 .Select((unit => "通过点击登录按钮触发的登录"));
 
 Observable.Merge(enterDownStream, loginBtnStream)
 .Subscribe((s =>
 {
 Debug.Log(s);
 if (LoginCheak(userName.text,password.text))
 {
  userName.text=String.Empty;
  password.text=String.Empty;
  _tipPanel.Show("登录成功");
 }
 else
 {
  userName.text=String.Empty;
  password.text=String.Empty;
  _tipPanel.Show("登录失败");
 }
 }));
 RegistBtn.OnClickAsObservable()
 .Subscribe((unit =>
 {
 this.gameObject.SetActive(false);
 _registPanel.gameObject.SetActive(true);
 }));
 }

 public bool LoginCheak(string username,string password)
 {
 bool isOK = false;
 if (_user._dictionary.ContainsKey(username))
 {
 if (_user._dictionary[username] == password)
 {
 isOK = true;
 }
 }
 return isOK;
 }
 
}

注册面板

using UniRx;
using UnityEngine;
using UnityEngine.UI;
using Zenject;

public class RegistPanel : MonoBehaviour
{
 [Inject] private TipPanel _tipPanel;
 [Inject] private LoginPanel _loginPanel;
 [Inject] private User _user;

 public InputField userName;
 public InputField password01;
 public InputField password02;
 public Button Regist;
 public Button mainMenu;
 void Start()
 {
 //光标跳转
 userName.OnEndEditAsObservable()
 .Subscribe((s => password01.Select()));
 password01.OnEndEditAsObservable()
 .Subscribe((s => password02.Select()));
 
 var enterPress=password02.OnEndEditAsObservable()
 .Select((s => "回车键触发注册"));
 var btnClick = Regist.OnClickAsObservable()
 .Select((unit => "点击注册按钮触发注册"));

 Observable.Merge(enterPress, btnClick)
 .Subscribe((s =>
  {
  Debug.Log(s);
  if ((userName.text != null) && (password01.text == password02.text))
  {
  if (_user._dictionary.ContainsKey(userName.text))
  {
  _tipPanel.Show("用户名已存在");
  }
  else
  {
  _user._dictionary.Add(userName.text,password01.text);
  _loginPanel.userName.text = userName.text;
  _loginPanel.password.text = password01.text;
  
  _tipPanel.Show("注册成功");
  }
  }
  else
  {
  _tipPanel.Show("注册失败");
  }
  }
 ));
 mainMenu.OnClickAsObservable()
 .Subscribe((unit =>
 {
 this.gameObject.SetActive(false);
 _loginPanel.gameObject.SetActive(true);
 }));
 }
}

提示面板

using UniRx;
using UnityEngine;
using UnityEngine.UI;

public class TipPanel : MonoBehaviour
{
 public Button CloseBtn;
 public Text InfoText;
 
 void Start()
 {
 CloseBtn.OnClickAsObservable()
 .Subscribe(Hide);
 }

 public void Show(string message)
 {
 InfoText.text = message;
 this.gameObject.SetActive(true);
 }

 private void Hide(Unit unit)
 {
 InfoText.text = string.Empty;
 this.gameObject.SetActive(false);
 }


}

Installer

using System.Collections.Generic;
using Zenject;

public class LoginInstaller : MonoInstaller
{
 public LoginPanel _loginPanel;
 public RegistPanel _registPanel;
 public TipPanel _tipPanel;
 public User _user=new User();
 
 public override void InstallBindings()
 {
 Container.Bind().FromInstance(_loginPanel).AsSingle();
 Container.Bind().FromInstance(_registPanel).AsSingle();
 Container.Bind().FromInstance(_tipPanel).AsSingle();
 Container.Bind().FromInstance(_user);
 }
}
public class User
{
 public Dictionary _dictionary;
 public User()
 {
 _dictionary=new Dictionary();
 }
}

以上是“Unity实现注册登录模块的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享文章:Unity实现注册登录模块的方法
标题链接:http://bjjierui.cn/article/gjdcjg.html

其他资讯