摘要: 红点是树形结构,数的每个节点是一个红点,每个红点有个key(不可重复)。节点树由两部分组成: 1.策划配置的红点(子红点、红点UI路径、功能开关等),比如主界面功能按钮 - 赛季模块切换tab - 赛季模块对应UI下的某个按钮。 2.运行后动态生成的节点(挂到上面配置的红点下面),比如赛季模块下有个 阅读全文
posted @ 2024-07-02 19:16 mc宇少 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 是的,你完全正确。在 Lua 中,使用 pairs 函数遍历表(table)时,遍历的顺序并不是按照表在内存中的物理顺序或者键(key)的插入顺序来的,而是根据表内部哈希(hash)机制决定的顺序。这个顺序对于不同的 Lua 版本、不同的表内容,甚至不同的 Lua 状态机(state machine 阅读全文
posted @ 2024-06-14 15:08 mc宇少 阅读(3) 评论(0) 推荐(0) 编辑
摘要: image可以合批,但单个image的消耗高于rimage 策略:不可以打图集的大图(动态加载)使用rimage,其余使用image 阅读全文
posted @ 2024-06-12 18:54 mc宇少 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 项目内一般会开发一些dotween的组件来给拼接的人来配置动画效果,但有时为了实现很复杂的效果,会给一个预制的多个节点挂在dotween脚本,会使预制体变得复杂,这里提供一个思路: 只在预制体的最上层节点挂在dotween脚本,这个脚本的功能是收集并读取所有子节点的dotween信息(rotatio 阅读全文
posted @ 2024-06-07 20:32 mc宇少 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 1.每个场景生成一个lua脚本: 内容:(1)场景生命周期(进入场景事件、离开场景事件、ui打开事件等)(2)自定义事件(由关卡编辑器自动生成,根据不同条件调用不同逻辑:比如世界事件的跑酷:条件就是是否接取了跑酷事件,如果接取了,就在场景里追踪目标) 调用时机:生命周期事件由场景管理器管理调用,自定 阅读全文
posted @ 2024-05-21 09:55 mc宇少 阅读(2) 评论(0) 推荐(0) 编辑
摘要: local function compare_with_flag(a, b) -- 如果a和b都有标志,则按照它们的某个字段进行排序 if a.flag and b.flag then return a.sort_field < b.sort_field -- 假设有一个sort_field字段用于 阅读全文
posted @ 2024-05-08 15:28 mc宇少 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 在要触发小游戏的创生物上挂在一个脚本,脚本实现加载本地的小游戏lua脚本(可以热更实现小游戏的逻辑),将其中的生命周期函数(Awake、Start、Update)获取到并映射成Action,在该脚本的Unity生命周期中调用。 在lua脚本的Start函数中对原来的C#脚本进行注入(util.hot 阅读全文
posted @ 2024-01-11 18:57 mc宇少 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 原文:【C#】三分钟,深入理解C# 哈希表(Dictionary)_c# dictionary 为什么会hash冲突-CSDN博客 1.哈希函数:将key转成hashcode,这个hashcode还要和字典的count取余,确保索引落到桶数组中。 2.哈希桶:用来解决哈希冲突的链表、没有冲突一个桶对 阅读全文
posted @ 2024-01-10 13:33 mc宇少 阅读(31) 评论(0) 推荐(0) 编辑
摘要: MaterialPropertyBlock mpb = new MaterialPropertyBlock();//最好全局唯一静态对象 Render(MeshRenderer、SpriteRenderer).GetPropertyBlock(mpb); mpb.SetFloat(...)//类似m 阅读全文
posted @ 2024-01-05 18:36 mc宇少 阅读(119) 评论(0) 推荐(0) 编辑
摘要: SRP Batch是SRP提供的批处理方法。 SRP Batch不会减少DrawCall的数量,而是使其更精简。它在GPU上缓存了材质属性,因此不必再每次绘制调用时都将其发送出去。这样既减少了需要传达的数据量,又减少了每个绘图调用CPU需要完成的工作。 但这仅在着色器遵守用于uniform数据的严格 阅读全文
posted @ 2024-01-03 15:40 mc宇少 阅读(195) 评论(0) 推荐(0) 编辑