当前位置: 首页 > news >正文

Unity UGUI 实战学习笔记(4)

仅作学习,不做任何商业用途

不是源码,不是源码!

是我通过"照虎画猫"写的,可能有些小修改

不提供素材,所以应该不算是盗版资源,侵权删  

登录面板UI

登录数据逻辑

这是初始化的数据变量脚本 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class LogData {//账号public string usingname;//密码public string password;//是否记住密码public bool isRememberPw;//是否自动登录public bool isRememberLog;//服务器}

这是数据管理器 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class LogDataManger 
{//登录管理器为单例模式private static LogDataManger logdatamanger = new LogDataManger();//唯一实例public static LogDataManger instance = logdatamanger;//访问入口//登录访问数据,私有变量和公共属性,以便获取private LogData logdata;public LogData LogData {get {return logdata;}}//注册访问数据,同上private RegisterData registerdata;public RegisterData RegisterData{ get{return registerdata;}}//JsonMgr这块我直接照抄的,因为没跟写Json管理器private LogDataManger() {logdata = JsonMgr.Instance.LoadData<LogData>("LogData");registerdata= JsonMgr.Instance.LoadData<RegisterData>("RegisterData");}//存储登录数据public void Save(){JsonMgr.Instance.SaveData(logdata, "LogData");}//存储注册数据public void SaveRegister() {JsonMgr.Instance.SaveData(registerdata, "RegisterData");}//注册方法public bool RegisterUser(string username,string password){ //如果用户名或密码存在则无需注册if(registerdata.registerInfo.ContainsKey(username) )       return false;//如果不存在则实时注册并保存registerdata.registerInfo.Add(username, password);SaveRegister();return true;}//用户名和密码是否合法public bool CheckInfo(string userName,string passWord){ //是否有该用户if(registerdata.registerInfo.ContainsKey(userName)){//如果有该用户,则核查密码if (registerdata.registerInfo[userName] == passWord)return true;}return false;  }
}

登录面板的逻辑

using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Windows;public class 登陆面板Panel : 面板基类 {//两个按钮public Button sign;public Button log;//两个输入框public InputField usingname;public InputField password;//两个勾选框public Toggle Pw;//密码的public Toggle Log;//自动登录的protected override void Init() {//登录确认log.onClick.AddListener(() => {if (usingname.text.Length <= 6 ||password.text.Length <= 6) {UIManger.Instance.ShowPanel<提示面板Panel>().TipText("账号或密码大于6位");return;}if(LogDataManger.instance.CheckInfo(usingname.text, password.text)){LogDataManger.instance.LogData.usingname = usingname.text;LogDataManger.instance.LogData.password = password.text;LogDataManger.instance.LogData.isRememberLog = Log.isOn;LogDataManger.instance.LogData.isRememberPw = Pw.isOn;UIManger.Instance.HidePanel<登陆面板Panel>();}else{UIManger.Instance.ShowPanel<提示面板Panel>().TipText("账号或密码错误");}});//注册确认sign.onClick.AddListener(() => {//隐藏登录面板UIManger.Instance.HidePanel<登陆面板Panel>();//弹出注册面板UIManger.Instance.ShowPanel<注册面板panel>();});//记住密码关掉,自动登录也应该关掉Pw.onValueChanged.AddListener((ison) => {if(ison==false){Log.isOn = false;}});//自动登录应该和记住密码同时勾选Log.onValueChanged.AddListener((ison) => {if(ison==true){Pw.isOn = true;}});}public override void ShowMe() {base.ShowMe();//获取登录面板数据,以方便更新面板的信息LogData logData = LogDataManger.instance.LogData;//复选框的更新Pw.isOn = logData.isRememberPw;Log.isOn = logData.isRememberLog;usingname.text =logData.usingname;//如果选中了记住密码,可以更新密码if(Pw.isOn)password.text =logData.password;else{ }//如果选中了自动登录}//登录面板记录注册面板注册好的账号密码的方法public  void SetInfo(string usename,string passwords){usingname.text = usename;password.text = passwords;}}

 因为还有注册面板和登录进去的服务器面板没拼完,所以逻辑写到这里就算完成了这一部分了

http://www.lryc.cn/news/409186.html

相关文章:

  • Python学习和面试中的常见问题及答案
  • Mysql-索引视图
  • 电子签章-开放签应用
  • Ubuntu下设置文件和文件夹用户组和权限
  • JavaSE从零开始到精通(九) - 双列集合
  • 探索 OpenAI GPT-4o Mini:开发者的高效创新工具
  • 藏文词典查单词,藏汉双语解释,推荐使用《藏语翻译通》App
  • 【机器学习基础】初探机器学习
  • SpringBoot轻松实现多数据源切换
  • Qt 5 当类的信号函数和成员函数,函数名相同时,连接信号和槽的写法。
  • Vuex 介绍及示例
  • 【elementui】记录如何重命名elementui组件名称
  • MySQL面试篇章—MySQL锁机制
  • OAK相机支持的图像传感器有哪些?
  • 网络安全威胁情报是什么,它对代工生产(OEM)意味着什么?
  • 【基础篇】Docker 架构与组件 TWO
  • 03。正式拿捏ArkTS语言第一天
  • 【PyTorch][chapter 27][李宏毅深度学习][attention-3]
  • java-数据结构与算法-02-数据结构-05-栈
  • Python 管理依赖包(pip, virtualenv)
  • Bigdecimal 导出为excel时显示未0E-10,不是0,怎么解决
  • springboot项目从jdk8升级为jdk17过程记录
  • list、tuple、set和dict传参机制
  • Redis快速入门基础
  • python基础介绍
  • SSRF中伪协议学习
  • Java | Leetcode Java题解之第284题窥视迭代器
  • 哈尔滨等保定级的常见问题
  • springAOP理解及事务
  • Optional类的使用 java8(附代码)