zoukankan      html  css  js  c++  java
  • Unity 登录注册功能的实现(PlayerPrefs)

    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、创建好登录、注册以及登录成功的页面,添加输入框、提示框和相应的控件

    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、测试效果

  • 相关阅读:
    request和request.form和request.querystring的区别
    设计模式—单例模式
    设计模式--单例模式之Lock
    一般处理程序
    C#使用wkhtmltopdf.exe,HTML页面转化为PDF文档
    iTextSharp 使用详解(转)
    简单工厂模式
    单例模式防反射及性能(二)
    java单例模式
    java学习笔记之基础语法(二)
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13370407.html
Copyright © 2011-2022 走看看