Unity 登录注册功能的实现(PlayerPrefs)

摘要:
名称1819//登录页面20publicGameObjectsignIn;2728voidUpdate()29{30if(didSignedUp)31{32didSigned Up=false;35}36if(didSignedIn)37{38didSignedIn=false;40signSucceed.SetActive(true);

1、首先了解下 Unity 的 PlayerPrefs 存储

目前,在 Unity 中只支持 int、string、float 三种数据类型的读取,所以我们可以使用这三种数据类型来存储简单的数据

而其中用于数据持久化的类为 PlayerPrefs,如下:

数据保存

  • PlayerPrefs.SetString(“Name”,Key.value);

  • PlayerPrefs.SetInt(“Name”,Key.value);

  • PlayerPrefs.SetFloat(“Name”,Key.value);

数据读取

  • PlayerPrefs.GetString(“Name”);

  • PlayerPrefs.GetInt(“Name”);

  • PlayerPrefs.GetFloat(“Name”);

2、创建好登录、注册以及登录成功的页面,添加输入框、提示框和相应的控件

Unity 登录注册功能的实现(PlayerPrefs)第1张

3、注册&登录代码:

  1 using UnityEngine;
  2 using UnityEngine.UI;
  3 
  4 /// <summary>
  5 /// 登录/注册
  6 /// </summary>
  7 public class SignIn_Up : MonoBehaviour
  8 {
  9     // 登录成功页面
 10     public GameObject signSucceed;
 11 
 12     // 注册页面
 13     public GameObject signUp;
 14     public InputField upUserName;
 15     public InputField upPassword;
 16     public InputField passwordAgain;
 17     public Text upTips;
 18 
 19     // 登录页面
 20     public GameObject signIn;
 21     public InputField inUserName;
 22     public InputField inPassword;
 23     public Text inTips;
 24 
 25     bool didSignedUp = false;
 26     bool didSignedIn = false;
 27 
 28     void Update()
 29     {
 30         if (didSignedUp)
 31         {
 32             didSignedUp = false;
 33             upTips.text = "注册成功,请返回到登录页面登录!";
 34             Debug.Log("注册成功,跳转到登录页面");
 35         }
 36         if (didSignedIn)
 37         {
 38             didSignedIn = false;
 39             Debug.Log("登录成功,跳转到登录成功页面");
 40             signSucceed.SetActive(true);
 41             signIn.SetActive(false);
 42         }
 43     }
 44 
 45     public void OnBackClicked() // 注册页面返回按钮
 46     {
 47         signIn.SetActive(true);
 48         signUp.SetActive(false);
 49     }
 50 
 51     public void OnUpSignUpClicked() // 注册页面注册按钮
 52     {
 53         var pass = passwordAgain.text.Trim();
 54 
 55         if (!upPassword.text.Trim().Equals(pass))
 56         {
 57             upTips.text = "两次输入的密码不一致,请重新输入!";
 58             return;
 59         }
 60         else if (upUserName.text.Trim() == "" || upPassword.text.Trim() == "" || pass == "")
 61         {
 62             upTips.text = "用户名密码不能为空,请重新输入!";
 63             return;
 64         }
 65         else
 66         {
 67             PlayerPrefs.SetString(upUserName.text, upPassword.text); // 以用户名为键名进行存储
 68             Debug.Log("用户名:" + upUserName.text);
 69             Debug.Log("密码:" + upPassword.text);
 70             OnBackClicked();
 71         }
 72     }
 73 
 74     public void OnSignInClicked() // 登录页面登录按钮
 75     {
 76         if (inUserName.text.Trim() == "" || inPassword.text.Trim() == "")
 77         {
 78             inTips.text = "用户名密码不能为空,请重新输入!";
 79         }
 80         else if (PlayerPrefs.GetString(inUserName.text.Trim()) == null)
 81         {
 82             inTips.text = "用户不存在!请注册后再登录!";
 83         }
 84         else if (PlayerPrefs.GetString(inUserName.text.Trim()) != inPassword.text.Trim())
 85         {
 86             inTips.text = "用户密码错误,请重新输入!";
 87         }
 88         else
 89         {
 90             didSignedIn = true;
 91         }
 92     }
 93 
 94     public void OnInSignUpClicked() // 登录页面注册按钮
 95     {
 96         signUp.SetActive(true);
 97         signIn.SetActive(false);
 98     }
 99 
100     public void OnQuitClicked() // 登录成功页面退出按钮
101     {
102         Application.Quit();
103         UnityEditor.EditorApplication.isPlaying = false;
104     }
105 }

4、测试效果

Unity 登录注册功能的实现(PlayerPrefs)第2张

Unity 登录注册功能的实现(PlayerPrefs)第3张

 
 

免责声明:文章转载自《Unity 登录注册功能的实现(PlayerPrefs)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JS获取IMG图片高宽Oracle根据符合条件的数据循环批量更新下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办

一般提示如下   点击Device,然后选中当前真正连接到的网卡   一般是由于重装系统之后,没有把本来是realtime capable的设备Install,所以找不到支持EtherCAT的设备导致的,只需要重新安装一下支持的网卡即可,如果还是不行,则删除原来扫出来的设备,重新扫描一次       更多教学视频和资料下载,欢迎关注以...

如何避免用户多次点击造成的多次请求

我们在访问有的网站,输入表单完成以后,单击提交按钮进行提交以后,提交按钮就会变为灰色,用户不能再单击第二次,直到重新加载页面或者跳转。这样,可以一定程度上防止用户重复提交导致应用程序上逻辑错误。 还有很多其他的方式进行防止重复点击提交,如 1、定义标志位: 点击触发请求后,标志位为false量;请求(或者包括请求后具体的业务流程处理)后,标志位为true...

Android控件重叠显示小记

方案一 利用布局控件显示优先级 在xml中RelativeLayout,FrameLayout,靠后的控件显示在上层。 利用margin属性 margin属性可以控制控件间的距离,属性值为正值时,越大离得越远,越小则离得越近。 所以可以通过给android:layout_marginTop ,android:layout_marginBottom, a...

小萝卜控机大师录制脚本(手机app自动化)

手机自动化测试之前发布过小萝贝控机大师与按键精灵结合实现手机自动化测试的功能,小萝贝控机大师升级了实现了更多手机自动化测试的功能,如下: l手机功能自动化测试:录制脚本,检查点时点击小萝贝控机大师右边的截图按钮,回放脚本,编辑脚本 l电脑可以控制多部手机,可以选择相同手机分辨率的手机,不同手机品牌型号的手机进行兼容性测试。电脑连接多部手机时,设置一个手机为...

JQuery validationEngine 验证页面是否全部通过验证

采用如下的方式进行验证。 if(jQuery("#form1").validationEngine('validate')) 如果页面中有JS调用了其他的按钮点击事件的话。需要将其type设定为button 不能讲其type 设置为submit <input type="button" onclick="GetValues()" value="保存"...

微信小程序 button 组件

  button 组件 拥有强大的功能 自身可以拥有很多跟微信风格的样式,且是 表单 和 开放的能力 重要的 按钮   button 的属性:     size:  类型  字符串  按钮的大小       属性值:default  默认的           mini   小尺寸     type:  类型  字符串  按钮的样式类型       属性值...