Unity红点系统的架构与设计

在游戏开发中,红点系统是一种常见的功能,用于提示玩家有未读消息或待处理任务。在Unity引擎中,我们可以使用脚本来实现红点系统,下面我将介绍一种基于Unity的红点系统的架构与设计,并给出对应的代码实现。

  1. 红点系统的代码实现

首先,我们需要创建一个红点管理器的脚本RedDotManager.cs,并在该脚本中定义一个红点节点列表和一个红点节点与UI元素的映射关系。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections.Generic; public class RedDotManager : MonoBehaviour{    public static RedDotManager instance; public List<Transform> redDotNodes; private Dictionary<Transform, bool> redDotMap = new Dictionary<Transform, bool>();    void Awake()   {      instance = this;   }    public void AddRedDot(Transform uiElement)    {       redDotMap[uiElement] = true;      UpdateRedDot(uiElement);   }    public void RemoveRedDot(Transform uiElement) {      redDotMap[uiElement] = false;    UpdateRedDot(uiElement);   }   public void UpdateRedDot(Transform uiElement)  {       bool showRedDot = redDotMap[uiElement]; uiElement.Find("RedDot").gameObject.SetActive(showRedDot); }}

在UI元素上添加一个红点节点RedDot,并在需要显示红点的时候调用AddRedDot方法,需要隐藏红点时调用RemoveRedDot方法。

public class ExampleUIElement : MonoBehaviour{    void Start()     
{         
RedDotManager.instance.AddRedDot(transform);  }     void OnDestroy()   {         
RedDotManager.instance.RemoveRedDot(transform);  }}

通过以上代码实现,我们可以在Unity中实现一个简单的红点系统。当有新的消息或任务需要提示时,我们只需要调用AddRedDot方法即可显示红点,当消息或任务已读或处理完成时,调用RemoveRedDot方法即可隐藏红点。

通过以上代码实现,我们可以在Unity中实现一个简单的红点系统。当有新的消息或任务需要提示时,我们只需要调用AddRedDot方法即可显示红点,当消息或任务已读或处理完成时,调用RemoveRedDot方法即可隐藏红点。

通过以上代码实现,我们可以在Unity中实现一个简单的红点系统。当有新的消息或任务需要提示时,我们只需要调用AddRedDot方法即可显示红点,当消息或任务已读或处理完成时,调用RemoveRedDot方法即可隐藏红点。

通过以上代码实现,我们可以在Unity中实现一个简单的红点系统。当有新的消息或任务需要提示时,我们只需要调用AddRedDot方法即可显示红点,当消息或任务已读或处理完成时,调用RemoveRedDot方法即可隐藏红点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成使用 GitHub Copilot 提升 IDEA 开发效率

集成使用 GitHub Copilot 提升 IDEA 开发效率 在现代软件开发中&#xff0c;集成开发环境&#xff08;IDE&#xff09;如IntelliJ IDEA已经成为开发人员不可或缺的工具。它们提供了代码编辑、调试、版本控制等一系列功能&#xff0c;极大地提高了开发效率。而GitHub Copilot作…

【Docker】Linux主机部署Docker

Docker部署 1.二进制文件部署 到如下地址&#xff0c;下载二进制包。 Docker官网&#xff1a;https://docs.docker.com/engine/install/binaries/ 网易镜像源&#xff1a;https://mirrors.163.com/docker-ce/linux/static/stable/x86_64/ 下载好的二进制包上传到主机&#xf…

【Android 13】使用Android Studio调试系统应用之Settings移植(十):外部模块依赖WifiTrackerLibRes的移植

文章目录 一、篇头二、系列文章2.1 Android 13 系列文章2.2 Android 9 系列文章2.3 Android 11 系列文章三、 WifiTrackerLib子模块3.1 源目录3.2 Android.bp四、移植方法4.1 创建模块4.2 替换源文件4.3 修改build.gradle4.4 图示4.5 模块编译通过

003:高精地图数据采集

摘要&#xff1a;高精度地图数据采集涉及多个环节和技术&#xff0c;需要严谨的规划和执行&#xff0c;以确保采集到的地理信息质量可靠、精准&#xff0c;并能够支持各种智能交通和导航应用的需求。 一、设备准备 高精地图数据采集需要高精度的设备&#xff0c;如Lidar&#…

Java之获取Nginx代理之后的客户端IP

Java之获取Nginx代理之后的客户端IP Nginx代理接口之后&#xff0c;后台获取的IP地址都是127.0.0.1&#xff0c;解决办法是需要配置Nginx搭配后台获取的方法&#xff0c;获得设备的真实地址。我们想要获取的就是nginx代理日志中的这个IP nginx配置 首先在nginx代理的对应lo…

C#程序反编译经验总结

1. 反编译出的代码有问题时&#xff0c;可以用多个反编译工具之间的代码相互印证。&#xff08;比如.net reflector 与ILSpy&#xff09; 2. 有时Visual Studio编译的错误信息不明确时, 可以msbuild编译程序&#xff0c;msbuild的错误信息相对完整一些。 2.1 编译错误&#xf…

【笔记】APN 配置参数 bitmask 数据转换(Android KaiOS)

一、参数说明 &#xff08;一&#xff09;APN配置结构对比 平台AndroidKaiOS文件类型xmljson结构每个<apn>标签是一条APN&#xff0c;包含完成的信息层级数组结构&#xff0c;使用JSON格式的数据。最外层是mcc&#xff0c;其次mnc&#xff0c;最后APN用数组形式配置&am…

【漏洞复现-通达OA】通达OA video_file.php 任意文件下载漏洞

一、漏洞简介 通达OA video_file.php文件存在任意文件下载漏洞&#xff0c;攻击者通过漏洞可以读取服务器敏感文件。 二、影响版本 ● 通达OA2011 三、资产测绘 ● hunterapp.name"通达 OA" ● 特征 四、漏洞复现 GET /general/mytable/intel_view/video_file.…

Javaweb之SpringBootWeb案例之切入点表达式的详细解析

3.3 切入点表达式 从AOP的入门程序到现在&#xff0c;我们一直都在使用切入点表达式来描述切入点。下面我们就来详细的介绍一下切入点表达式的具体写法。 切入点表达式&#xff1a; 描述切入点方法的一种表达式 作用&#xff1a;主要用来决定项目中的哪些方法需要加入通知 …

带Alpha通道的TIFF文件在GeoServer发布PNG瓦片失败的问题

我在使用GeoServer发布Tiff切PNG瓦片切不了&#xff0c;但是JPG可以&#xff0c;用QGIS转坐标系之后可以&#xff0c;但是用ArcGIS转坐标系之后不可以&#xff0c;看GeoServer日志发现报错如下&#xff1a; org.geowebcache.GeoWebCacheException: Problem communicating with…

软考笔记--信息系统开发方法(下)

信息系统是一个极其复杂的人机交互系统&#xff0c;它不仅包含计算机技术&#xff0c;通信技术和网络规划以及其他的工程技术&#xff0c;而且&#xff0c;它还是一个复杂的管理系统&#xff0c;需要管理理论和方法的支持&#xff0c;因此&#xff0c;与其他工程项目相比&#…

AIGC基础:大型语言模型 (LLM) 为什么使用向量数据库,嵌入(Embeddings)又是什么?

嵌入&#xff1a; 它是指什么&#xff1f;嵌入是将数据&#xff08;例如文本、图像或代码&#xff09;转换为高维向量的数值表示。这些向量捕捉了数据点之间的语义含义和关系。可以将其理解为将复杂数据翻译成 LLM 可以理解的语言。为什么有用&#xff1f;原始数据之间的相似性…

HarmonyOS 自定义进度条 Stage模型

通过onTouch监听滑动&#xff0c;动态改变圆角 let radius 0Entry Component struct TestPage {State flip: boolean falseState progress:number 20build() {Row() {Column() {RelativeContainer(){Rect({ width: 100%, height: 40 }).radius(10).fill("#505050"…

springboot 使用rocketmq实现简单的TCC

商品微服务 商品扣减库存请求体 Data public class GoodsTccRequest {private List<Integer> skuIds;//商品售卖idprivate List<Integer> quantitys;//数量private String orderId;//订单号 } 商品TCC service public interface GoodsTccService {/*** 订单fe…

深度学习与机器学习的关系

深度学习和机器学习的关系 深度学习是机器学习的一个子领域&#xff0c;专注于使用神经网络&#xff0c;特别是深度神经网络&#xff08;DNN&#xff09;来解决各种问题。可以说&#xff0c;深度学习是机器学习的一种方法或技术。两者都致力于通过从数据中提取有用的信息或模式…

十七、String 和 StringBuilder

文章目录 String 和 StringBuilder3.1 String基本用法3.2 String底层3.3 不可变性3.4 编码转换3.5 StringBuilder基本用法3.6 StringBuilder基本实现原理3.7 String的和运算符 String 和 StringBuilder 本文为书籍《Java编程的逻辑》1和《剑指Java&#xff1a;核心原理与应用实…

pytorch-textsummary,中文文本摘要实践

pytorch-textsummary&#xff0c;中文文本摘要实践 pytorch-textsummary是一个以pytorch和transformers为基础&#xff0c;专注于中文文本摘要的轻量级自然语言处理工具&#xff0c;支持抽取式摘要等。 目录 数据使用方式paper参考 项目地址 pytorch-textsummary: https://g…

docker (十)-docker compose容器编排

在实际工作中&#xff0c;部署一个应用可能需要部署多个容器&#xff0c;一个一个部署非常不方便。docker compose可以一键部署和启动多个容器&#xff0c;它使用yaml文件来编排服务。github和docker hub很多项目都提供了docker-compose.yaml文件&#xff0c;我们可以一键部署项…

浅谈木材加工企业的电气火灾隐患及电气火灾监控系统的应用

摘要&#xff1a;本文分析了木材加工企业的特点、现状及常见电气火灾隐患&#xff0c;提出了消灭电气火灾隐患的措施。结尾介绍了木材加工企业常用电气设备的选用及电气火灾监控系统在其低压配电系统的应用方案及产品选型。 关键词&#xff1a;木材加工企业&#xff1b;电气火…

redis 异步队列

//produceMessage.ts 模拟生产者 import Redis from ioredis; const redis new Redis(); // 生产者&#xff1a;将消息推送到队列 async function produceMessage(queueName:string, message:string) {try {await redis.rpush(queueName, message);console.log(Produced messa…