Unity3D实现登陆注册功能,实现本地存储读取

这篇具有很好参考价值的文章主要介绍了Unity3D实现登陆注册功能,实现本地存储读取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

untiy登录注册功能的实现,可以永久本地存储。C#源代码,也可以用相同的办法存储读取玩家的其他信息或自定义的游戏设置

实现了判断用户名是否存在,密码是否前后一致,密码是否正确等。

这是注册界面功能

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class Register : MonoBehaviour
{
    /// <summary>确认按钮</summary>
    public Button ConfirmBtn;
    /// <summary>取消按钮</summary>
    public Button CancelBtn;


    /// <summary>注册界面输入用户名</summary>
    public InputField InputUserName;
    /// <summary>注册界面输入密码</summary>
    public InputField InputPassWord;
    /// <summary>注册界面确认密码</summary>
    public InputField ConfirmPassWord;

    /// <summary>用户名提示错误</summary>
    public Text UserNameText;
    /// <summary>密码前后不一致提示错误</summary>
    public Text PassWordText;



    private StreamWriter WriterUserName;
    private StreamWriter WriterPassWord;

    /// <summary>用户名保存路径</summary>
    private string UserNamePath;
    /// <summary>密码保存路径</summary>
    private string PasswordPath;

    private void Awake()
    {
        ConfirmBtn.onClick.AddListener(StorageBtn);
        CancelBtn.onClick.AddListener(Cancel);
        UserNamePath = Application.streamingAssetsPath + "/UserName.txt";
        PasswordPath = Application.streamingAssetsPath + "/Password.txt";
    }
    void Start()
    {
        InputUserName.onValueChanged.AddListener(UserNameInput);
        ConfirmPassWord.onValueChanged.AddListener(PassWordInput);
        UserNameText.text = "";
        PassWordText.text = "";

    }


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            EmptyData();
        }
    }
    /// <summary>
    /// 用户名输入框检测输入
    /// </summary>
    /// <param name="str"></param>
    void UserNameInput(string str)
    {
        UserNameText.text = "";
    }
    /// <summary>
    /// 确认密码输入框检测输入
    /// </summary>
    /// <param name="str"></param>
    void PassWordInput(string str)
    {
        PassWordText.text = "";
    }
    /// <summary>
    /// 点击取消
    /// </summary>
    void Cancel()
    {
        PassWordText.text = "";
        UserNameText.text = "";
        StorageInput.Instance.RegisterUI.SetActive(false);
        StorageInput.Instance.LoginUI.SetActive(true);
    }

    /// <summary>
    /// 点击确认
    /// </summary>
    void StorageBtn()
    {
        string[]  m_StrUserNameData = File.ReadAllLines(Application.streamingAssetsPath + "/UserName.txt");
        if (InputUserName.text == "")
        {
            UserNameText.text = "请输入用户名";
            return;
        }
        if ( InputPassWord.text == "")
        {
            PassWordText.text = "请输入密码";
            return;
        }
        foreach (string item in m_StrUserNameData)
        {
            if (InputUserName.text == item)
            {
                UserNameText.text = "用户名已存在,请重新输入";
                return;
            }
        }
        if (InputPassWord.text == "")
        {
            PassWordText.text = "请输入密码";
            return;
        }
        if (InputPassWord.text != ConfirmPassWord.text)
        {
            PassWordText.text = "密码前后不一致";

            return;
        }
        try
        {
            WriteIntoName(InputUserName.text);
            WriteIntoPassWord(InputPassWord.text);
            StorageInput.Instance.RegisterUI.SetActive(false);
            StorageInput.Instance.LoginUI.SetActive(true);
            Debug.LogError("注册成功");

        }
        catch (System.Exception e)
        {
            Debug.LogError("注册失败");
            Debug.LogError(e);
            throw;
        }
    }
    /// <summary>
    /// 将用户名写入
    /// </summary>
    /// <param name="Name">需要写入的信息</param>
    public void WriteIntoName(string Name)
    {
        FileInfo UeserName = new FileInfo(UserNamePath);
        if (!UeserName.Exists)
        {
            WriterUserName = UeserName.CreateText();
        }
        else
        {
            WriterUserName = UeserName.AppendText();
        }
        WriterUserName.WriteLine(Name);
        WriterUserName.Flush();
        WriterUserName.Dispose();
        WriterUserName.Close();
    }
    /// <summary>
    /// 将密码写入
    /// </summary>
    /// <param name="Password"></param>
    public void WriteIntoPassWord(string Password)
    {

        FileInfo PassWord = new FileInfo(PasswordPath);
        if (!PassWord.Exists)
        {
            WriterPassWord = PassWord.CreateText();
        }
        else
        {
            WriterPassWord = PassWord.AppendText();
        }
        WriterPassWord.WriteLine(Password);
        WriterPassWord.Flush();
        WriterPassWord.Dispose();
        WriterPassWord.Close();
    }
    /// <summary>
    /// 清空用户名和密码
    /// </summary>
    public void EmptyData()
    {
        FileInfo UserName = new FileInfo(UserNamePath);
        FileInfo Password = new FileInfo(PasswordPath);
        if (UserName.Exists)
        {
            UserName.Delete();
            UserName.Refresh();
        }
        if (Password.Exists)
        {
            Password.Delete();
            Password.Refresh();
        }
    }
}

以下是登录页功能

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class StorageInput : MonoBehaviour
{
    public static StorageInput Instance;
    /// <summary>注册界面</summary>
    public  GameObject RegisterUI;
    /// <summary>登录界面</summary>
    public GameObject LoginUI;
    /// <summary>注册按钮</summary>
    public Button RegisterBtn;
    /// <summary>登录按钮</summary>
    public Button LoginBtn;

    /// <summary>登录界面输入用户名</summary>
    public InputField InputUserName;
    /// <summary>登录界面输入密码</summary>
    public InputField InputPassWord;

  

    /// <summary>登录界面用户名不存在</summary>
    public Text UserNameWrong;
    /// <summary>登录界面密码错误</summary>
    public Text PassWordWrong;

    /// <summary>拿到用户名配置表</summary>
    private string[] m_StrUserNameData;
    /// <summary>拿到密码配置表</summary>
    private string[] m_StrPassWordData;


    void Start()
    {
        Instance = this;
        RegisterBtn.onClick.AddListener(RegisterEvent);
        LoginBtn.onClick.AddListener(Login);

        InputUserName.onValueChanged.AddListener(UserNameInput);
        InputPassWord.onValueChanged.AddListener(PassWordInput);

        RegisterUI = GameObject.Find("注册界面");
        LoginUI = GameObject.Find("登录界面");
        RegisterUI.SetActive(false);
        LoginUI.SetActive(true);
        UserNameWrong.text = "";
        PassWordWrong.text = "";
    }

    // Update is called once per frame
    void Update()
    {
      
    }
    /// <summary>
    /// 用户名输入框检测输入
    /// </summary>
    /// <param name="str"></param>
    void UserNameInput(string str)
    {
        UserNameWrong.text = "";
    }
    /// <summary>
    /// 确认密码输入框检测输入
    /// </summary>
    /// <param name="str"></param>
    void PassWordInput(string str)
    {
        PassWordWrong.text = "";
    }
    /// <summary>
    /// 点击注册
    /// </summary>
    private void RegisterEvent()
    {
        InputUserName.text = "";
        InputPassWord.text = "";
        RegisterUI.SetActive(true);
        LoginUI.SetActive(false);

    }
    /// <summary>
    /// 登录
    /// </summary>
    void Login()
    {
        m_StrUserNameData = File.ReadAllLines(Application.streamingAssetsPath + "/UserName.txt");
        m_StrPassWordData = File.ReadAllLines(Application.streamingAssetsPath + "/Password.txt");
        if (InputUserName.text == "")
        {
            UserNameWrong.text = "用户名不能为空";
            return;
        }
        else
        {
            if (InputPassWord.text == "")
            {
                PassWordWrong.text = "请输入密码";
                return;
            }
        }
        for (int i = 0; i < m_StrUserNameData.Length; i++)
        {
            if (InputUserName.text == m_StrUserNameData[i])
            {
                if (InputPassWord.text == m_StrPassWordData[i])
                {
                    LoginUI.SetActive(false);
                    RegisterUI.SetActive(false);
                    return;
                }
                if (InputPassWord.text != m_StrPassWordData[i])
                {
                    PassWordWrong.text = "密码错误";
                    return;
                }
            }
        }
        foreach (string item in m_StrUserNameData)
        {
            if (InputUserName.text != item)
            {
                UserNameWrong.text = "用户名不存在,请注册";
                return;
            }
        }
    }
}

unity实现登录注册和存储数据,c#,unity,ui

 unity实现登录注册和存储数据,c#,unity,ui

unity实现登录注册和存储数据,c#,unity,ui

 文章来源地址https://www.toymoban.com/news/detail-541426.html

 

到了这里,关于Unity3D实现登陆注册功能,实现本地存储读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D实现背包系统、物品的拖拽、拾取物品功能

    要在Unity中实现背包系统,你可以创建一个脚本来管理库存和物品。 首先,在Unity中创建一个名为“InventoryManager”的C#脚本。在这个脚本中,你可以创建一个将存储在背包中的物品列表。

    2024年02月16日
    浏览(45)
  • Unity实用功能之UGUI的Text实现颜色渐变详解 Unity3D

    在Unity3D中,UGUI是一种用于创建用户界面的强大工具。其中的Text组件用于显示文本内容,而通过实现颜色渐变效果,可以使文本更加生动和吸引人。本文将详细介绍如何在Unity中使用UGUI的Text组件实现颜色渐变效果,并提供相应的源代码。 首先,我们需要创建一个空的GameObj

    2024年02月02日
    浏览(56)
  • Unity3D学习之UI系统——用NGUI制作游戏登陆界面

    会省略一些东西,可以看我的NGUI的博客 设置UI分辨率自适应 设置Root 的层级 和摄像机渲染的层级为UI 主摄像机不渲染UI 一般都是美术给一个示意图,然后按示意图上拼面板 3.1.1 制作图集 制作两个新图集 3.1.2 拖面板 检查DrawCall 3.1.3 面板基类 创建面板基类, 首先设置成单例

    2024年02月19日
    浏览(75)
  • 【Unity3D小功能】Unity3D中实现Text显示版本功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 在项目开发中,会遇到要控制版本的情况,比如说对比版本号,版本不对再更新版本的功能,这些就是

    2024年02月05日
    浏览(77)
  • 【Unity3D】Unity3D 软件安装 ( 注册账号并下载 Unity Hub | 安装 Unity Hub | 获取个人版授权 | 中文环境设置 | 安装 Unity3D 编辑器 )

    Unity 官方网站 : 英文 : https://unity.com 中文 : https://unity.cn 进入 中文网站 https://unity.cn , 点击右上角的 \\\" 下载 Unity \\\" 按钮 ; 推荐下载 Unity3D 的长期支持版本 ; 点击界面中的 \\\" 下载 Unity Hub \\\" 选项 ; 根据你的系统 , 选择对应的 Unity Hub , 我在 Windows 上开发 , 因此选择 \\\" Windows 下载 \\\"

    2024年01月25日
    浏览(101)
  • 【Unity3D小功能】Unity3D中实现UI擦除效果、刮刮卡功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 使用Unity3D实现UI的擦拭效果、刮刮卡功能的效果实现方式比较多,比如说用Shader、Texture渲染都是可以

    2024年02月04日
    浏览(245)
  • 【Unity3D小功能】Unity3D中实现点击‘文字’出现‘UI面板’

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 QQ群:398291828 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 宠粉博主又来了,今天有粉丝问我如何实现点击一段文字然后出现的面板在那段文字附近显示: 深入了

    2024年04月13日
    浏览(83)
  • 【Unity3D小功能】Unity3D中实现仿真时钟、表盘、仿原神时钟

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 今天实现一个时钟工具,其实在之前已经完成了一个简单的时钟工具:【Unity3D应用案例系列】时钟、

    2024年02月05日
    浏览(78)
  • Unity3d C#实现场景编辑/运行模式下3D模型XYZ轴混合一键排序功能(含源码工程)

    在部分场景搭建中需要整齐摆放一些物品(如仓库中的货堆、货架等),因为有交互的操作在单个模型上,每次总是手动拖动模型操作起来也是繁琐和劳累。 在这背景下,我编写了一个在运行或者编辑状态下都可以进行一键排序模型的脚步。方便在场景搭建时,可以快速搭建

    2024年01月17日
    浏览(71)
  • Unity3d C# 开发微信小游戏分享图片、朋友圈等功能实现(含源码)

    通过一段时间的基于minigame-unity-webgl-transform插件的开发,算是稍微完整的一小个游戏已经制作完成,具体大家可以扫码体验一下: 感谢支持!! 之前编写了一篇u3d转微信小游戏开发教程的博客,虽然这个公测插件还有很多问题,我个人也在一直使用中。开发一个游戏后,最佳

    2023年04月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包