Unity类银河战士恶魔城学习总结(P128 Switch UI with KeyBoard用键盘切换UI)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili
教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/
本章节实现了用键盘切换角色UI,技能树UI,合成面板UI和设置UI

UI.cs
1. 变量与字段
-
characterUI,skillTreeUI,craftUI,optionsUI:这些字段分别表示不同的UI界面(如角色界面、技能树界面、制作界面、选项界面)。这些字段会通过Inspector面板进行设置和关联,确保这些UI界面在脚本中可以通过GameObject引用。 -
itemToolTip和statToolTip:这两个字段表示物品提示框和状态提示框,用于显示相应的提示信息。这些也是public类型,因此可以通过Inspector在编辑器中关联。
2. Start() 方法
-
SwitchTo(null):在Start方法中调用SwitchTo,传入null作为参数。此操作会在游戏启动时隐藏所有UI元素,因为SwitchTo方法会将所有子元素(UI面板)设置为SetActive(false)。 -
itemToolTip.gameObject.SetActive(false)和statToolTip.gameObject.SetActive(false):这两行代码会在游戏启动时隐藏物品提示框和状态提示框,确保它们初始状态不可见。
3. SwitchTo(GameObject _menu) 方法
-
作用:该方法用于切换到指定的UI界面。
-
for (int i = 0; i < transform.childCount; i++):遍历当前UI对象的所有子物体,调用SetActive(false)隐藏它们。这一步确保了在显示新的UI界面时,所有其他的UI界面都会被隐藏。 -
_menu.SetActive(true):如果传入的_menu不为null,则显示该UI界面(通过SetActive(true))。
4. SwitchWithKeyTo(GameObject _menu) 方法
-
作用:该方法用于处理切换UI的逻辑,如果目标UI界面已经显示,则隐藏它;如果目标UI界面未显示,则调用
SwitchTo显示它。 -
if (_menu != null && _menu.activeSelf):首先检查传入的_menu是否为null,并且它是否已经显示(即activeSelf为true)。如果是,则调用SetActive(false)隐藏该UI界面。 -
SwitchTo(_menu):如果目标UI界面未显示,则调用SwitchTo方法来显示该界面。

脚本的布置方式
using UnityEngine;public class UI : MonoBehaviour
{//存放4个UI界面[SerializeField] private GameObject characterUI;[SerializeField] private GameObject skillTreeUI;[SerializeField] private GameObject craftUI;[SerializeField] private GameObject optionsUI;//物品提示框和状态提示框public UI_ItemTooltip itemToolTip;public UI_StatToolTip statToolTip;void Start(){SwitchTo(null);itemToolTip.gameObject.SetActive(false);//戏启动时隐藏物品提示框和状态提示框statToolTip.gameObject.SetActive(false);}void Update(){if (Input.GetKeyDown(KeyCode.C))SwitchWithKeyTo(characterUI);if (Input.GetKeyDown(KeyCode.B))SwitchWithKeyTo(craftUI);if (Input.GetKeyDown(KeyCode.K))SwitchWithKeyTo(skillTreeUI);if (Input.GetKeyDown(KeyCode.I))SwitchWithKeyTo(optionsUI);}public void SwitchTo(GameObject _menu)// 该方法用于切换到指定的UI界面{for (int i = 0; i < transform.childCount; i++)//遍历当前UI对象的所有子物体{transform.GetChild(i).gameObject.SetActive(false);//遍历并隐藏所有子元素,确保了在显示新的UI界面时,所有其他的UI界面都会被隐藏}if (_menu != null)//传入的菜单不为空{_menu.SetActive(true);//显示}}public void SwitchWithKeyTo(GameObject _menu)//处理切换UI的逻辑{if (_menu != null && _menu.activeSelf)// UI界面已经显示,隐藏, 如果目标UI界面未显示,调用 SwitchTo 显示。{_menu.SetActive(false);return;}SwitchTo(_menu);}
}
相关文章:
Unity类银河战士恶魔城学习总结(P128 Switch UI with KeyBoard用键盘切换UI)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了用键盘切换角色UI,技能树UI,合成面板UI和设置UI UI.cs 1. 变量与字段 characterUI,skill…...
基于Springboot+微信小程序的急救常识学习系统 (含源码数据库)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…...
【云计算解决方案面试整理】3-7主流云计算平台、云计算架构、安全防护
准备面云计算解决方案的岗位,整理了一些,也请大佬们指点。 文档分为 云计算基础概念、云计算技术原理、主流云计算平台(以天翼云为例)、云计算架构(弹性设计、高可用设计、高性能设计)、安全防护几个方面。 三、主流云计算平台 1.阿里云云计算平台 强大的计算能力:拥有…...
数据库范式、MySQL 架构、算法与树的深入解析
一、数据库范式 在数据库设计中,范式是一系列规则,用于确保数据的组织和存储具有良好的结构、完整性以及最小化的数据冗余。如果不遵循范式设计,数据可能会以平铺式罗列,仅使用冒号、分号等简单分隔。这种方式存在诸多弊端&#…...
设计模式之责任链模式(Chain Of Responsibility)
一、责任链模式介绍 1、责任链模式介绍 职责链模式(chain of responsibility pattern) 定义: 避免将一个请求的发送者与接收者耦合在 一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着这条链 传递请求,直到有一个对…...
SQLite 全文检索:快速高效的文本查询方案
文章目录 什么是全文检索?如何启用 FTS?插入数据执行全文检索关联原始表与 FTS 表数据更新结论 说明: 本文以博客内容全文检索为例。 什么是全文检索? 全文检索是指对文本数据进行索引和查询的一种技术。与常规的 LIKE 查询不同,…...
【微信小程序】报修管理
一、报修管理 报修管理是为方便业主联系维修师傅的一个服务,业主确认需要维修的房到后,再指定维修项目以及上门的时间待待师傅联系上门服务即可。 1.1 在线报修 业主通过在线的方式填写报修的信息,包括房屋信息、维修项目、联系电话、上门…...
C++——视频问题总结
1、C和C的区别 CC面向过程对象注重程序的实现逻辑程序的整体设计内容C语言采用了一种有序的编程方法——结构化编程:将一个大型程序分解为一个个小型的,易于编写的模块,所有模块有序调动,形成了一个程序的完整的运行链C将问题分解…...
Ubuntu24.04 network:0 unclaimed wireless adapter no found
前言: 所遇问题原因在于,折腾显卡cuda版本,导致nvidia驱动没了,使用sudo ubuntu-drivers autoinstall后,驱动有了,但是reboot后无线网卡无法识别,此外usb无线网络也无法使用,ifconfi…...
Java 使用MyBatis-Plus数据操作关键字冲突报错You have an error in your SQL syntax问题
问题 这个报错是出现在Java Spring boot项目中,使用MyBatis-Plus通过创建的实体类对数据库的操作过程中,通过实体创建数据库表是没有问题的,而在接口调用服务类操作数据库的时候,会出现报错。报错详情如下: 服务请求异…...
深入浅出 ChatGPT 底层原理:Transformer
Transformer 在人工智能和自然语言处理领域,Transformer架构的出现无疑是一个里程碑式的突破。它不仅推动了GPT(Generative Pre-trained Transformer)等大型语言模型的发展,还彻底改变了我们处理和理解自然语言的方式。 GPT与Transformer GPT 近几年,人工智能技…...
opc da 服务器数据 转 IEC61850项目案例
目录 1 案例说明 2 VFBOX网关工作原理 3 应用条件 4 查看OPC DA服务器的相关参数 5 配置网关采集opc da数据 6 用IEC61850协议转发数据 7 网关使用多个逻辑设备和逻辑节点的方法 8 在服务器上运行仰科OPC DA采集软件 9 案例总结 1 案例说明 在OPC DA服务器上运行OPC …...
SystemVerilog学习笔记(十一):接口
在Verilog中,模块之间的通信是使用模块端口指定的。 Verilog模块连接的缺点 声明必须在多个模块中重复。存在声明不匹配的风险。设计规格的更改可能需要修改多个模块。 接口 SystemVerilog引入了 interface 结构,它封装了模块之间的通信。一个 inter…...
华大单片机跑历程IO口被写保护怎么解决
一,说明 使用的单片机是HC32F460KETA华大单片机,使用的代码历程是小华单片机历程,具体历程在小华官网都可以找到。 在使用小华历程跑模拟IIC时,SCL时钟是有的,但是IO输入被LOCK了,所以在跑历程进行断点…...
Iotop使用
文章目录 Iotop依赖及编译1:内核配置2: 环境配置3.依赖库ncurses3.1 Ncurses的编译配置 4. Iotop的编译及修改5.测试效果如下: Iotop依赖及编译 源码路径:https://github.com/Tomas-M/iotop#how-to-build-from-source (GitHub - Tomas-M/iotop: A top u…...
定积分的快速计算技巧
快速换元公式——左加右减 对称区间,偶倍奇零 如果遇到对称区间,拿不准是奇函数还是偶函数直接用如下公式: 奇函数时: 偶函数时: arctanx与tanx的和式计算: 周期函数的积分性质 定积分几何意义 定积分的…...
第T7周:Tensorflow实现咖啡豆识别
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: (二)具体步骤 1. 使…...
imagehash图片去重:保留图片文件名
简介 在日常工作中,我们可能需要管理大量图片,这些图片中可能存在图像相同文件名不同的情况。手动删除这些重复的图片既费时又费力。为了解决这个问题,我们可以编写一个Python脚本来自动化这个过程。 准备工作 在开始之前,请确保…...
在Docker环境下为Nginx配置HTTPS
前言 配置HTTPS已经成为网站部署的必要步骤。本教程将详细介绍如何在Docker环境下为Nginx配置HTTPS,使用自签名证书来实现加密通信。虽然在生产环境中建议使用权威CA机构颁发的证书,但在开发测试或内网环境中,自签名证书是一个很好的选择。 …...
vue面试题9|[2024-11-15]
问题1:scoped原理 1.作用:让样式在本组件中生效,不影响其他组件 2.原理:给节点新增自定义属性,然后css根据属性选择器添加样式。 问题2:让css只在当前组件生效 <style scoped> 问题3:scss…...
为什么92.7%的AI视频项目在第3秒开始失连?:2024年全球17个主流模型连贯性崩溃点压力测试报告(含可落地的4步韧性加固法)
更多请点击: https://codechina.net 第一章:AI视频生成电影级连贯性技术解析 实现电影级视觉连贯性的AI视频生成,核心在于跨帧时空一致性建模——它远不止于单帧图像质量,更要求运动轨迹、光照逻辑、角色形变与场景拓扑在时间维度…...
2026年最容易上手的5个AI副业
前言: 2026年,AI工具已经彻底改变了副业的门槛。过去需要3-5年积累的技能,借助AI可能只需3-5周就能开始接单赚钱。 这篇文章精选了5个最容易上手、最快出收益的AI副业方向,每个方向都附上了具体操作路径。 一、为什么现在是做AI副业的最好时机? 三个关键信号: 需求爆发…...
TI毫米波雷达实战:从mmWave Studio配置到3D-FFT点云生成的保姆级教程
TI毫米波雷达实战:从硬件连接到3D-FFT点云生成的完整指南 毫米波雷达技术正在工业检测、自动驾驶和智能家居领域掀起革命。作为TI毫米波雷达开发的核心工具链,mmWave Studio与DCA1000的组合为工程师提供了从信号采集到高级处理的完整解决方案。本文将带您…...
基于AVR单片机的无线图像侦检系统:从硬件选型到软件实现
1. 项目概述与核心价值最近在整理过去的项目资料,翻到了一个挺有意思的老项目——基于Atmel AVR单片机的无线图像侦检系统。虽然现在STM32、ESP32满天飞,各种高性能MCU和无线模块层出不穷,但这个项目在当年(以及现在某些特定场景下…...
零成本获取全球股票数据:AKShare开源金融数据接口完整指南
零成本获取全球股票数据:AKShare开源金融数据接口完整指南 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/ak…...
AWorks硬件抽象层:嵌入式开发中UART、I2C、SPI、ADC接口的统一编程实践
1. 项目概述:当嵌入式开发遇上“万能插座”在嵌入式系统开发中,我们常常面临一个经典难题:硬件平台的碎片化。今天,你可能在为一块基于ARM Cortex-M4的MCU编写SPI驱动,用来连接一块TFT屏幕;明天,…...
MPh 开源项目教程
MPh 开源项目教程 【免费下载链接】MPh Pythonic scripting interface for Comsol Multiphysics 项目地址: https://gitcode.com/gh_mirrors/mp/MPh 项目介绍 MPh 是一个基于 Python 的强大开源项目,旨在简化数学物理问题的求解过程。它结合了符号计算的灵活…...
手把手教你学Simulink——电动汽车防溜坡功能中的电机零扭矩闭环保持控制仿真
目录 手把手教你学Simulink——电动汽车防溜坡功能中的电机零扭矩闭环保持控制仿真 一、背景与挑战 1.1 为什么“关断电机”不等于“刹住车”? 1.2 核心痛点与防溜坡设计目标 二、系统架构与核心控制推导 2.1 整体架构:从“驾驶意图”到“零速电磁抱死” 2.2 核心数学推…...
docker启动线程创建异常 pthread_create EPERM | RuntimeError: can‘t start new thread
直接说答案,着急就复制过去使用 docker配置 增加对应权限配置参数即可 --privileged 如果上述不行,docker配置 使用组合方式 --privileged \ --ulimit nproc65535:65535 \ --ulimit nofile65535:65535 \详细解释 下面逐项解释这些 Docker 参数的作用、…...
MarkdownViewer++:Notepad++终极Markdown实时预览插件完整指南
MarkdownViewer:Notepad终极Markdown实时预览插件完整指南 【免费下载链接】MarkdownViewerPlusPlus A Notepad Plugin to view a Markdown file rendered on-the-fly 项目地址: https://gitcode.com/gh_mirrors/ma/MarkdownViewerPlusPlus 你是否曾在Notepa…...
