【Unity必备商业级前缀树红点系统】

案例视屏地址

视屏教程案例地址:商业级高性能前缀树红点系统 点我观看视屏教程

系统介绍

该系统基于前缀树结构去实现,在需要更新红点时,我们只需要更新对应的红点状态,该红点状态发生改变会自动通知其父节点的红点更新以此类推,直至到树顶。

我们把红点系统分为逻辑层和表现层,逻辑层主要负责红点逻辑的判断,由逻辑层去决定该不该显示红点,而表现层则只需要根据逻辑层的红点状态去及时的更新红点的显示/隐藏的状态即可。
这样可以更清晰的去梳理我们的红点逻辑,而不至于与UI相关的代码混为一谈。完美剥离代码与UI的关联 。

主要用于游戏中需要红点,但是各各地方的构建导致代码结构杂乱,只需要一行代码即可解决红点问题,逻辑清晰,流程简单。

设计思路

请添加图片描述

功能列表

1.普通红点显示:只显示红点不显示数字。
.
2.子节点数字红点:显示红点数量,具体的数量由子节点显示的红点个数决定。系统会自动寻找子节点显示的红点,进行计数,最终显示的我们需要的节点上。
.
3.数据数字红点:由程序跟据数据或消息数量自定义红点数量,UI层会根据逻辑层的红点数量以及状态自动显示或隐藏。

红点显示隐藏规则

红点的隐藏规则由逻辑层去通知,UI层只负责监听逻辑层的事件,只单纯的做表现的事情。
逻辑层通知由开发者在需要更新的时机,去调用 UpdateRedDotState进行触发更新逻辑,后续的一系列显示、隐藏以及父节点的更新/父节点的父节点…等更新流程由系统内部进行管理。

使用介绍

红点更新:

RedDotSystem.Instance.UpdateRedDotState(RedDotDefine.Task_Box1);

红点逻辑:

 	void Awake()
    {
        //自定义红点逻辑使用演示,以非继承的形式演示红点的使用方式
        RedDotTreeNode store_Gold_Node = new RedDotTreeNode { parentNode=RedDotDefine.StoreRoot, node = RedDotDefine.Store_Gold, logicHander = OnStoreGoldRedDotLogicHandler };
    }

    public void OnStoreGoldRedDotLogicHandler(RedDotTreeNode redNode)
    {
        redNode.redDotActive = RedDotDataMgr.Store_Gold_isRead == false;
        Debug.Log("OnStoreGoldRedDotLogicHandler:"+ redNode.redDotActive);
    }

红点UI监听:
请添加图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity XLua 商业游戏源码是指使用Unity引擎和XLua语言进行开发的高质量、专业水准的游戏源代码。 首先,Unity是世界上最流行和强大的游戏引擎之一,广泛用于创建各种类型的游戏,包括PC、手机、虚拟现实和增强现实游戏。它提供了丰富的工具和功能,使开发者可以轻松创建出错综复杂和令人印象深刻的游戏。Unity的跨平台特性也使得游戏可以在不同的设备上运行。 而XLua是一种基于Lua语言的脚本编程框架,它可以与Unity引擎完美集成,为开发者提供了更灵活、高效的游戏开发方式。XLua具有良好的性能和扩展性,可以轻松地将Lua脚本与C#代码结合起来,发挥出各自的优势。 商业游戏源码意味着这些源代码是由具有丰富游戏开发经验的专业开发团队编写的。他们经过精心设计和优化,代码结构清晰,易于理解和维护。商业游戏源码通常包含了各种常见的游戏开发功能,例如角色控制、物体碰撞、动画系统、UI界面、游戏关卡设计等。这些源码可以作为学习游戏开发的参考,也可以用于商业游戏项目快速搭建和开发。 总结来说,Unity XLua 商业游戏源码是一种高质量和专业水准的游戏源代码,它利用Unity引擎和XLua语言的强大功能,为游戏开发者提供了高效、灵活的开发方式,可以用于学习游戏开发和商业游戏项目的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铸梦xy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值