主页

干货博客收集

博客类: 恶毒的狗博客 槐宏文的知乎 猫佬 gulu’s blog AI分享站 秀哥知乎 MDD Skill Engine GDC 2024(物理)『王国之律动:《塞尔达传说:王国之泪》物理与声音的演变』 游戏程序员的自我修养 案例类: 怪物猎人开发专题 Catlike Coding - 六边形网格地图 Hexagonal Grids 英雄联盟的战争迷雾思路_1 英雄联盟的战争迷雾思路_2 技术文章类: Recast Navigation源码分析:导航网格Navmesh的生成原理 Unity 大世界,场景 Lightmap 分块Bake,场景区块动态加载 贴图优化简谈 Built-in转...

阅读更多

Unity的ECS Chunk

那你写的ecs有chunk吗 我看et好像也没chunk呢 谁写也没chunk啊 chunk是啥 ecs里面那个概念 dots里边的chunk 我就记得那个提高内存命中率相关的 不过这个也不是自己写的 这个你要从CPU的组成开始看了 chunk是关于component的一个分组 提高cpu缓存命中率的 chunk 就是一个entity类型 也可以说是component的组合种类 dots性能优化 要避免改变chunk 但是一般都是component吧 chunk最后的实现就是在内存中开辟的一段区域 chunk做好管理就是在创建entity的时候会为这个entity开辟一段连续的内存存放相关的数据 因为内存连续...

阅读更多

技能同步

有一个实际会用到的 你们想一下现在一个游戏 有视野机制,为了防止外挂所以是野外的人是没有给你同步状态和坐标 面向的 现在 有一个技能的持续时间是3秒,过程中会产生位移 请问 当他技能释放一半了 进入了你的视野 此时 特效和技能机制 如何同步 这个问题能搞定 其实 策划编辑器 特效规范 底层 同步 全涵盖了 以前的解题思路就是 客户端先把数据跑着 需要时候拽过来 但是这样会被外挂抓 比如王者荣耀以前就遇到这个问题 进入草里不是要通知别的客户端 别看不到你了 对 几乎可以说是dota的专属 他主要是看解题思路没有明确答案一家一个样 直接客户端一直跑 进草就隐藏 对 你这就是其中一个解题思路 就是所有信息全同步 只不过是设置了下摄像头的mask 让人看不见 ...

阅读更多

异步相关

我看et的异步说是有些限制不要乱用 执行到await会收集上下文,丢到其他地方去等待,等到await的SetResult被触发的时候线程切回上下文,接着你的await下面的代码继续执行 我是这么理解的 await后可以访问到主线的字段吗 可以 以前不行,现在可以 await在unity是被重操过的 那岂不是可以完全替代协程 协程本来还有点开销,等于协程完全是是废了? 本身就可以完全替代协程的东西 await也是有消耗的 上下文切换 unity 实现了SynchronizationContext await 执行后回抛回主线程

阅读更多

回收预留内存

for(int i = 0;i<9;i++) { System.GC.Colletct(); } //这是为了il2cpp缩小mono堆内存 //如果我们想要预留内存也被回收,那么首先Scripting Block要选IL2CPP,不能是mono,然后当一个block连续六次GC都没有被访问到,这块内存会被返回给系统

阅读更多

Jenkins自动化构建流程记录

1 由于本人没有接触过使用Jenkins进行版本构建相关的内容,最近的项目里正好负责了,所以在此记录,做个备忘。和学习。 版本机安装Jenkins,启动Jenkins服务,创建管理员账户,然后登陆。 2 在这里首先在Unity中为版本构建创建一个构建脚本,并且声明一个方法,作为入口,作为Jenkins静默启动Unity进程并且要调用的函数。 /// <summary> /// 出包函数入口 /// </summary> [MenuItem("构建版本")] private static void Build() { //... } 然后在Jenkins配置中,我将构建流程划分为了Pipeline的几个阶段,分别是: Clean:移除...

阅读更多