首页 > 其他分享 >Unity红点系统的架构与设计

Unity红点系统的架构与设计

时间:2024-02-19 09:34:17浏览次数:29  
标签:RemoveRedDot 调用 架构 uiElement public 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方法即可隐藏红点。

标签:RemoveRedDot,调用,架构,uiElement,public,Unity,红点
From: https://www.cnblogs.com/bycw/p/18020396

相关文章

  • Unity常用设计模式之代理模式
    代理模式是一种常用的设计模式,它允许一个对象代表另一个对象进行访问。在Unity中,代理模式经常被用来控制对某些对象的访问,以便在访问对象的同时进行一些额外的操作,比如权限控制、缓存、日志记录等。代理模式的结构包括三个角色:抽象主题(Subject)、真实主题(RealSubject)和代理(Proxy)。......
  • Unity 2022.3.20f1新功能,异步实例化预制体Object.InstantiateAsync
    今天查看Unity2022.3.20f1更新日志,发现新增了个异步实例化的功能,这个功能解决了Unity历史上实例化预制体卡顿的痛点,简直不要太爽。具体的API文档请点击跳转。做了个简单的实例化测试,实例化500*500个Cube,耗时9.2s。实例化过程之间不会卡顿,可以做其他事情,即便是在重度游戏加载场......
  • 软件架构模式之第五章:事件驱动架构
     第五章:事件驱动架构近年来,事件驱动架构风格显著增长并广泛应用,我们对其理解方式也发生了改变。这种高采用率并不令人意外,因为事件驱动架构能够解决复杂的非确定性工作流和高度反应和响应的系统等难题。此外,新技术、工具、框架和基于云的服务使得事件驱动架构比以往更易访问......
  • Unity框架设计系列:Unity 如何设计网络框架
    在Unity框架设计中与游戏服务器对接的网络框架也是非常重要的一个模块,本文給大家分享如何来基于Unity来设计一个网络框架,主要的讲解以下几个点:(1)TCP半包粘包,长连接与短连接,IO阻塞;(2)TcpSocket与UDPSocket的技术方案;(3)Unity的序列化与反序列化技术方案;(4)TCP的......
  • Unity资源管理系列:Unity项目开发中如何做资源加密
    Unity的游戏很容易被人反编译出来,然后再重新打包发布,把自己辛辛苦苦开发的游戏,抄写的一丝不挂。很多项目要求要做好资源加密,Unity中如何做好资源加密呢?本文給大家分享加密算法+资源打包整合思路:(1)游戏资源加密如何选择加密算法;(2)Assetsbundle资源包的加密与解密;游戏资源......
  • 微服务与分布式服务架构
    根据设计期的架构思想和运行期的不同结构分为:面向服务的架构分布式服务架构微服务架构1、面向服务架构。以业务服务的角度和服务总线的方式,一般是webservice与ESB,考虑系统架构和企业IT治理;2、分布式服务架构。基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;3、......
  • Unity Audio System概要
    Unity的AudioSystem给我们提供了一整套的游戏音频处理解决方案,接下来我们对UnityAudioSystem进行简单的讲解。首先让我们来了解一下UnityAudioSystem包含了哪些重要的组成部分。AudioClip:这个是Unity存放外部音频资源的容器,可以根据我们的需要将外部导入的音频资源进行粗处......
  • 【Unity】消息系统
    介绍封装的消息机制使用注册消息Reg(MessageTypemessageType,MessageDelHandlehandle);messageType :注册消息类型handle :消息传入时回调方法(该方法需拥有参数Message)注销消息UnReg(MessageTypemessageType,MessageDelHandlehandle);messageType :注销消息类型......
  • Unity手机游戏性能优化系列:针对CPU端的性能调优
    做手机游戏开发的时,经常会遇到手机游戏的性能问题,手机游戏的性能问题可能有很多的方面,今天我们从CPU调优的角度来給大家介绍一下常用的CPU调优的一些经验和手段。这些经验和手段都有可能随着时间与环境的变化改变而改变,具体还是要以实际的为准,先定位性能问题,再上具体的手段。接下......
  • Unity资源管理系列:Unity 框架如何做好资源管理
    Unity资源管理需求分析作为架构师,在开始动手之前,先分析清楚需求,你才能设计出合理的方案,我们来分析一下Unity资源管理都有哪些需求,把需求想清楚了,设计是自然而然的事情。Unity资源管理主要需求:1:为开发与正式发布提供资源的加载/卸载;2:方便远程更新资源。3:带资源与不带资源......