分类: ET

9 篇文章

thumbnail
如何设计角色属性组件
目标 & 背景 本篇文章是对 ET1 中 NumericComponent 的介绍和补充,会围绕实际开发过程中可能会碰到的一些问题,给一个解题思路,并且会结合 Luban2 给出一个策划和程序都开心的方案 猫大曾经对 NumericComponent 做出过如下评论 单 NumericComponent 就可以完成 80% Moba 类游戏的设计了 属性组件作为游戏战斗中最底层的设计,拥有…
thumbnail
如何设计本地化组件
在我们项目开始初期,面临一个问题,就是本地化组件到底要不要重新造一次轮子。为了回答这个问题,首先我们需要仔细分析一下,本地化究竟需要哪些功能 业务逻辑动态扩容语言支持 运行时热切换语言,无需重启 对于代码赋值的部分,无法做到实时变化,需要等下一次赋值 任意多种资源类型的本地化 文字 图片等 配表字段自动本地化 代码动态赋值本地化 避免手输 string,提供动态生成翻译 key 常量代码工具 脚本…
thumbnail
ET Entity Tree 工具
目标 对整体 Entity 组件的树形图进行绘制 多个 Child 要有效区分,如 Unit、Scene 选中 Entity 时,可以查看 Entity 的属性 有办法查看 Unit 上挂载的 NubericComponent 中具体的属性 具体实现 第一条树形图的绘制没什么好说的,本身就是 Unity 自带的 TreeView 的基础实现,这里直接略过,感兴趣可以自行阅读源码 不同实体区分 日常…
thumbnail
基于 ECS 设计下的加载管理
之前在 Addressable 迁移 YooAsset 这篇文章中做了分层设计的相关介绍,本文为分层中详细的解析,以及为什么要这么设计 目标 & 背景 我们当前使用的框架,需要设计成一个基础库,以 Package 的形式进行使用,方便公司中其他项目后续的接入,所以泛用性要求很高,此外,开发者的水平可能会参差不齐,可能会有应届生刚刚接触 Unity 等现实因素的考量,因此我们需要达成如下目标…
thumbnail
ET 热更可用的命令行GM指令方案
起因 尝试的方案 iOS 捷径 GM UI UnityIngameDebugConsole 具体实现 ConsoleMethod Hotfix 监听 IGmCodeHandler 展示ID 的指令示例 GMCodeComponent 总结 起因 最近项目需要做游戏的 GM 指令,思前想去,想了几个方案后, 最后决定使用 UnityIngameDebugConsole提供的 GM 指令,然后封装一个…
thumbnail
ET & Addressable 热更代码加密方案(修正版)
起因 AES 加密 Hotfix.dll + Unity Security 加密 方案介绍 存在的问题 混淆方案 方案介绍 存在的问题 最终方案 实现步骤 分离 Hotfix 创建 增加引用 工具编写 编译 导入工具 加密工具 修改加载流程 修改 CLR Binding 最终效果 最后 起因 最近项目要搞代码加密,4.0+ 的 ET 非常不适合做加密方案,研究了很久,最后找到如下方案 这篇文章会包…
thumbnail
ET & Addressable 热更代码加密方案
起因 思路 热更层加密 非热更层加密 资源加密 生成加密 key 的方法 代码 Bug 修复 起因 最近研究了一下 ILSpy,如果 Hotfix.dll 文件不做加密,可以原封不动的还原出来,而且 Addressable 组件一直也没提供加密的方法,很困扰 之前一直陷入单独对 AssetBundle 包进行加密的圈子里,但是如果只需要保证代码安全,可以仅对 dll 文件进行加密 思路 热更层加密…
thumbnail
ET & Addressable C# 热更方案分享
ET 简介 改造内容 打包方式 配表流程 Addressable 简介 Addressable Import 工具 注意事项 ILRuntime 简介 注意事项 xlsx2json 简介 注意事项 代码部分 导入顺序 Addressable 基础配置及工具 Addressables Profile Addressable Assets Settings Addressable Import Gro…
thumbnail
ET 框架 Mac 生成MDB文件
## mcs定位 [mono 5.0.0 releases](http://www.mono-project.com/docs/about-mono/releases/5.0.0/) > 根据上面的releases,如果想要在mac端生成mdb,必须要用mcs来build,我们先找到自己的mcs在哪 ```shell $ which mcs /Library/Frameworks/Mono.…