三、账号密码存储

devtools/2024/10/21 19:09:12/

使用Playfers存储

Unity本地持久化类Playerprefs使用详解 - PlaneZhong - 博客园 (cnblogs.com)

一、登陆界面切换

1、登陆界面的脚本(机制类脚本)

在这个UI上挂载一个脚本LoginWnd

先声明一下这个脚本,拖拽

2、在登录模块中调用

这里的lambo表达式是简化了下面的方法

这里面的回调函数,是一个机制

使用这个机制的是:EnterLogin

因此,直接用一个lambo指向被注释的方法

作用是:当每一次场景切换时,都会调用委托里面的方法

而,登陆界面只需要出现一次,所以在这个异步加载的方法中添加一个回调参数

在LoginSys中进行调用异步加载场景的方法,就实现了只出现一次登陆场景

二、Playfers存储

//登录注册界面
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;public class LoginWnd : MonoBehaviour
{public TMP_InputField iptAcct;public TMP_InputField iptPass;public Button btnEnter;public Button btnNotice;public void InitWnd(){//获取本地存储的账号密码if (PlayerPrefs.HasKey("Acct") && PlayerPrefs.HasKey("Pass"))//如果查到了账号和密码{//赋值给它iptAcct.text = PlayerPrefs.GetString("Acct");iptPass.text = PlayerPrefs.GetString("Pass");}else//没有就自己输入{iptAcct.text = "";iptPass.text = "";}}//TODO更新本地存储的账号密码}

在这个代码中,和之前一样,需要进行一个初始化

被LoginSys调用。

如果查询到了账号和密码,那么就赋值给text

没有就自己输入

三、函数重载

先看代码

//UI界面基类
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;public class WindowRoot : MonoBehaviour
{public ResSvc resSvc = null;public void SetWndState(bool isActive=true)//这个窗口默认打开{//判断当前的状态是否等于目标状态//如果不等于目标状态,那就设置为目标状态if (gameObject.activeSelf != isActive){SetActive(gameObject, isActive);// gameObject.SetActive(isActive);}//如果是当前的状态,那么初始化/不是就给一个清理的函数if (isActive){InitWnd();}else{ClearWnd();}}protected virtual void InitWnd(){resSvc = ResSvc.Instance;}protected virtual void ClearWnd(){resSvc = null;}#region 重载方法protected void SetActive(GameObject go,bool isActive=true){go.SetActive(isActive);}protected void SetActive(Transform trans, bool state = true){trans.gameObject.SetActive(state);}protected void SetActive(RectTransform rectTrans, bool state = true){rectTrans.gameObject.SetActive(state);}protected void SetActive(Image img, bool state = true){img.transform.gameObject.SetActive(state);}protected void SetActive(TextMeshProUGUI txt, bool state = true){txt.transform.gameObject.SetActive(state);}protected void SetText(TextMeshProUGUI txt,string context=""){txt.text = context;}protected void SetText(Transform trans, int num = 0){SetText(trans.GetComponent<TextMeshProUGUI>(), num);}protected void SetText(Transform trans, string context = ""){SetText(trans.GetComponent<TextMeshProUGUI>(), context);}protected void SetText(TextMeshProUGUI txt, int num = 0){SetText(txt, num.ToString());}#endregion
}

1、文本重载

在这个文本方法中,如果输入的不是一个String类型。那么需要写一个方法包含玩家输入的类型

这里使用重载方法,很方便。

如果传入Tran类型,那就获取身上的组件,传入int/string

设置面板的失活生效也如此

此时,可以优化一下设置窗口的方法

2、注意事项

设置成Protected方法,只能被派生类继承,不能被其他方法调用

如果保护类型的虚方法,可以在子类中进行重写,也是要相同的保护类型。

四、UI基类

WindowRoot是ui加载进度的基类和登录注册界面的基类

在这里相当于调用这个单例类

在派生类中进行重写,并且继承虚方法中单例类的引用,而不用在派生类中单独声明


http://www.ppmy.cn/devtools/125762.html

相关文章

【RPC】—Thrift协议 VS Protobuf

Thrift协议 & VS Protobuf ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 文章目录 Thrift协议 & VS Pro…

SpringBoot人事系统:打造企业内部管理的核心竞争力

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为学校以及一些培训机构&#xff0c;都在用信息化战术来部署线上学习以及线上考试&#xff0c;可以与线下的考试有机的结合在一起&#xff0c;实现基于vue的人事系统在技术上已成熟。本文介绍了基于vue的人事系统…

算法-字符串笔记

双指针 反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; public class Solution {/*** 反转字符串的方法* param s 需要被反转的字符数组*/public void reverseString(char[] s) {// 初始化左右指针&#xff0c;分别指向字符串的首尾int left 0;int rig…

HTML实现飘动广告效果

上述HTML代码创建了一个简单的网页&#xff0c;其中包含一个可以在页面内自动移动的小方块&#xff08;div元素&#xff09;&#xff0c;并且当鼠标悬停在该方块上时&#xff0c;动画会暂停&#xff1b;当鼠标移开时&#xff0c;动画会继续。以下是代码的详细分析&#xff1a; …

智能EDA小白从0开始 —— DAY10 Yosys

Yosys 概述 工作原理 Yosys的工作原理深入来讲&#xff0c;是一个复杂但有序的硬件设计自动化流程&#xff0c;其核心在于将高级硬件描述语言&#xff08;HDL&#xff09;如Verilog或VHDL编写的代码&#xff0c;通过一系列精细的步骤转换为门级网表。这一流程首先涉及对HDL代…

uniapp-小程序开发0-1笔记大全

uniapp官网&#xff1a; https://uniapp.dcloud.net.cn/tutorial/syntax-js.html uniapp插件市场&#xff1a; https://ext.dcloud.net.cn/ uviewui类库&#xff1a; https://www.uviewui.com/ 柱状、扇形、仪表盘库&#xff1a; https://www.ucharts.cn/v2/#/ CSS样式&…

跟踪用户状态,http协议无状态 Cookie HttpSession,Session和Cookie的关系

1.概念分析 跟踪用户状态指的是web应用能够分辨请求属于哪个用户&#xff0c;进而记录用户的状态&#xff0c;从而为用户提供连续的针对性的服务。比如有多个客户在同一个购物网站上购物&#xff0c;每一个用户都会有一个虚拟的购物车。当某个客户发送请求将商品添加到购物车时…

图解Redis 04 | Set数据类型的原理及应用场景

介绍 Redis 的 Set 类型是一个不允许重复元素的集合&#xff0c;元素存储的顺序不按照插入的顺序&#xff0c;因此属于无序集合。一个 Set 最多可以存储 2^32 - 1 个元素&#xff0c;这与数学中的集合概念类似。Set 类型不仅支持增、删、改、查等操作&#xff0c;还支持多个Se…