Unity--记住密码
发布时间:2026/10/13 10:54:08 锦皓数字建站

在游戏开发中如果涉及登录功能我们经常会增加一个“记住密码”来方便用户进行登录本篇博客中我们主要通过PlayerPrefs来进行实现记住密码功能主要代码及实现逻辑实现逻辑【首次运行】Start() → 读 KEY_REMEMBER → 不存在得默认值 0→ Toggle 不勾选输入框留空【用户登录】输入账号密码 → 勾选记住密码 → 点登录→ 服务器返回 200 → 写入 (1, 用户名, Base64密码) → Save() 落盘【下次打开游戏】Start() → 读到 1 → Toggle 自动勾上→ 读出用户名 密码 → Base64 解码 → 自动填进输入框→ 用户直接点登录即可【用户某次取消勾选并登录成功】→ 写入 0DeleteKey 删掉账号密码 → 下次启动不再回填主要代码声明常量privateconststringKEY_REMEMBERLogin_Remember;// 开关上次是否勾选了记住密码privateconststringKEY_USERNAMELogin_UserName;// 数据用户名privateconststringKEY_PWDLogin_Password;// 数据密码Base64 后存储时机当服务器返回200 即 用户密码正确时进行存储if(data.code200)//用户密码正确{if(toggleRememberPwd.isOn)// 点击了记住密码{// 存储内容PlayerPrefs.SetInt(KEY_REMEMBER,1);PlayerPrefs.SetString(KEY_USERNAME,inputUserName.text);PlayerPrefs.SetString(KEY_PWD,Base64Encode(inputPassword.text));}else{// 没勾选记住密码需要把旧数据清掉PlayerPrefs.SetInt(KEY_REMEMBER,0);PlayerPrefs.DeleteKey(KEY_USERNAME);PlayerPrefs.DeleteKey(KEY_PWD);}PlayerPrefs.Save();}核心用法存数据PlayerPrefs.SetInt(“myInt”, 100); // 存intPlayerPrefs.SetFloat(“myFloat”, 3.14f); // 存浮点数PlayerPrefs.SetString(“myStr”, “hello”); // 存字符串PlayerPrefs.Save(); // 保存读数据Get第二个参数是默认值键不存在时返回int i PlayerPrefs.GetInt(“myInt”, 0);float f PlayerPrefs.GetFloat(“myFloat”, 1.0f);string s PlayerPrefs.GetString(“myStr”, “默认文字”);删除PlayerPrefs.DeleteKey(“keyName”); // 删除单个键PlayerPrefs.DeleteAll(); // 删除全部PlayerPrefs数据慎用PlayerPrefs.HasKey(“keyName”); // 判断某个键是否存在返回boolPlayerPrefs.Save(); // 强制写入磁盘读取账号voidStart(){LoadRememberAccount();}voidLoadRememberAccount(){//读取记住标记默认0未记住boolisRememberPlayerPrefs.GetInt(KEY_REMEMBER,0)1;//把复选框状态同步到UItoggleRememberPwd.isOnisRemember;if(isRemember){//读取用户名stringnamePlayerPrefs.GetString(KEY_USERNAME,);//读取base64编码后的密码stringpwdBase64PlayerPrefs.GetString(KEY_PWD,);//解码还原原始密码stringpwdBase64Decode(pwdBase64);//回填到输入框inputUserName.textname;inputPassword.textpwd;}}Base64 编解码工具函数stringBase64Encode(stringplainText){if(string.IsNullOrEmpty(plainText))return;byte[]bytesSystem.Text.Encoding.UTF8.GetBytes(plainText);returnSystem.Convert.ToBase64String(bytes);}stringBase64Decode(stringbase64Text){if(string.IsNullOrEmpty(base64Text))return;byte[]bytesSystem.Convert.FromBase64String(base64Text);returnSystem.Text.Encoding.UTF8.GetString(bytes);}Encode原始明文密码 → UTF8 字节数组 → Base64 字符串存入本地Decode读取本地 Base64 字符串 → 还原字节数组 → 原始密码填入密码输入框本专栏记录Unity新手小白的学习成长之路愿和大家一同钻研、共同进步。文章若有疏漏或错误欢迎各位大佬在评论区指正我会及时勘误优化。觉得内容对你有帮助不妨点个关注后续持续更新Unity实用干货本文部分内容由 AI 辅助整理生成
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。