自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 资源 (1)
  • 问答 (5)
  • 收藏
  • 关注

原创 Unity Burst编译

Burst 是一个编译器,目的是把代码跑的更高效。主要优化技术密集的任务。LLVM的激进优化。SIMD向量化:循环操作转为单指令多数据指令。(一个加法变四个加法一起算)循环展开:if等分支展开,比如经常true的再优化。自动内联:把小函数自动内联展开。无GC检测:因为操作都是非托管数据,所以省去一些不必要的检测。2019年官方说的: Burst必须只能在JobSystem中使用,其他地方是不能用的。从 IL/.NET 字节码转换为使用 LLVM 编译器的优化原生 CPU 代码。

2025-03-01 15:12:42 990

原创 2D 游戏艺术、动画和光照

原文:https://unity.com/resources/2d-game-art-animation-lighting-for-artists-ebook。

2025-02-14 14:07:27 389 1

原创 CI/CD部署打包方法

2025-02-14 11:02:49 510

原创 打Tag傻瓜工具

源码:https://github.com/ZeroChiLi/GitTagsTool。

2025-02-12 17:59:40 219

原创 ZLogger 高性能日志库

高性能;支持模板配置;可以动态生成日志代码的日志库。可以解决常见unity日志问题:根据级别开关日志。字符串参数装箱问题。日志屏蔽不全的参数导致没必要的调用。线程异步的日志。可扩展:输出多个文件,自动生成额外参数。

2025-02-12 16:56:34 806

原创 Git 源码编译,冲突对比异常排查

怎么编译git:https://stackoverflow.com/questions/28848870/how-to-build-git-on-windows。

2025-02-12 16:52:53 835

原创 Unity DOTS 介绍和应用

DOTS(Data-Oriented Technology Stack)面向数据的技术栈什么是DOTS?为什么说DOTS非常重要?通常游戏要处理大量数据时可以考虑用。用于核心战斗模块等,ui啥的不用考虑这些。截至目前(2024年9月),Unity Entity出到1.3+版本,ChatGPT的知识库最新是2023年10月,对应Unity Entities包是1.0+版本,有些差异,但大部分问题还是能教。子场景因为原来Unity场景不支持ECS组件,所以单独弄了个“子场景”来烘培ECS组件。

2025-02-12 16:31:49 1252 1

原创 垃圾回收 GC(Garbage Collection)

Unity 内存:https://docs.unity3d.com/Manual/performance-memory-overview.htmlUnity游戏开发 - 内存篇:https://zhuanlan.zhihu.com/p/533047433Unity增量GC:https://docs.unity3d.com/Manual/performance-incremental-garbage-collection.html。

2025-02-12 16:05:00 942

原创 Unity 代码编译名词解释

一般是ToLua、XLua自己在维护,比如Lua5.3之前不支持int64,即LuaJIT不支持int64,但是ToLua中有自己实现支持。是.NET的一种实现,开源的,Unity早期选择他,因为开源且跨平台比.NET多。运行时将 Lua 代码的编译成本地的机器码,然后直接在处理器上执行这些机器码,避免了解释执行的性能开销。项目打包Lua成AB前,会先编译一遍Lua成字节码,可以省去运行时解析编译原始Lua文件时间。运行时,JIT编译(Just-In-Time),编译IL代码成目标平台的机器码。

2025-02-12 15:59:46 939

原创 Unity Harmony 注入代码排查transform位置变化

代码存在直接使用原始等设置坐标,如果出现抖动或者其他位置异常,排查会比较困难,传统做法:C#约定所有设置坐标接口都用自己封装的。lua的话,因为是都是通过C# Wrap调用,可以在C#Wrap中加打印。极端点:改引擎源码重新编译。现在提供另一种思路,在所有C#代码改变坐标的地方,注入代码,实现监听所有改变坐标的代码调用情况。存在的问题:如果是动画或者物理控制等非自己加的代码,就无法检查到,可以提前排查。

2025-02-12 15:56:45 512

原创 Unity 编辑器热更C# FastScriptReload

用于运行时修改C#后能快速重新编译C#并生效,避免每次改C#,unity全部代码重新编译,耗时旧且需要重启游戏。

2025-02-12 15:43:28 486

原创 Unity 增量打包AssetBundle

官方表示:https://forum.unity.com/threads/about-incremental-build-and-asset-bundle-hashes.1436032/#:~:text=Finally%2C%20you%20mention,script%20or%20package.在机器只打一个包的环境下,30193个ab,刷新两次增量缓存,第二次打AB时间只要近两分钟。文件,在不同机器上,依赖的类是一样的,但顺序不一致,导致计算。文件,反之跳过的AB不会刷新AB和。

2025-02-12 15:41:34 886

原创 Unity 代码优化记录

Unity 修复性能问题:https://learn.unity.com/tutorial/fixing-performance-problems-2019-3?考虑判断原来一致不重复赋值考虑使用整形存储代替枚举。

2025-02-12 15:36:16 781

原创 Unity URP的2D光照简介

官网工程,包括2d光照,动画,动效介绍:人物脸部光照细节和脚上的阴影投射。

2025-02-12 15:20:32 483

原创 游戏内常见加密

私钥是保密的,只存在于服务器上,Token 的生成由服务器负责,通常由原始用户身份信息 Identify 和签名两部分组成,用户身份 JSON 字符串,通过 base64 算法进行编码作为 Identify,由于 Identify 长度不固定,可用与客户端约定好的哈希算法进行运算,再用私钥进行签名。密钥是保密的,只存在于服务器上,Token 的生成与解析由服务器负责,客户端也无法解密 Token。加密:约定一个除数,每四个字节数据合并后除余,得到一个字节以内的余数,最后得到一个余数的数组。

2025-02-12 15:10:56 553

原创 常用数据格式:json、bson、msgpack

修改更快:json数据存储无类型,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。类型定义:https://github.com/msgpack/msgpack/blob/master/spec.md。更紧凑:二进制存储数据,json是字符类型,bson有时间类型,二进制对象等,更省空间。

2025-02-12 15:08:47 347

原创 物理引擎Box2D

DOTS,软浮点物理引擎:https://github.com/Kimbatt/unity-deterministic-physics?Unity底下物理引擎就是Box2D,这里因为项目需要定点数物理引擎,就找了个抄过来定点数物理引擎:https://github.com/Zonciu/Box2DSharp-deterministicTrueSync里面的Farseer就是基于Box2D弄的 https://github.com/Genbox/VelcroPhysics。

2025-02-12 15:07:23 530

原创 时间轮计时器

权衡容量和最小精度:设定25ms一个槽位,一秒相当于40个槽位。但游戏内用计时器频繁的地方,比如buff,通常是好几秒,如果第一轮只记录一秒的任务,每过一秒,取出下一轮任务又要重新计算放在对应毫秒的槽位。扩大第一轮空间,记录10秒空间,如果要添加一个3秒任务,那就可以直接插入到第一轮,而不用插到下一轮,减少了每次轮次变化产生的重新计算。最大容量:先定了24小时,因为只是客户端用,暂时没想到有啥会超过一天的计时器。就算有,后面改下数组长度即可。

2025-02-12 15:05:46 340

原创 C# CultureInfo 地区影响字符串

线上遇到有玩家资源加载异常,发现资源路径出现异常字符:发现是土耳其语下字符串转小写不符合预期:->ı。

2025-02-12 14:47:06 978

原创 Xcode证书密钥导入

渠道定期会给xcode证书,用来给ios打包用,证书里面有记录哪些设备可以打包进去。

2025-02-12 14:24:17 542

原创 Unity崩溃和ANR排查

使用addr2line工具:https://stackoverflow.com/questions/5314036/how-to-use-addr2line-in-android。对比上个正常版本有什么差异,看有没有什么sdk更新,plugins,projectsetting更新等,回退相关可以回退内容,出包换线上包。3.设置->隐私->分析->分析数据,看修改时间取新的,找到“tw”(包名)相关文件,发过来。如果是安卓,客服有反馈,可以先同步运营,把apk给客服给玩家尝试。

2025-02-12 13:45:19 800

原创 游戏应用谷歌后台使用介绍

地址:https://play.google.com/console/developers。

2025-02-12 11:31:45 242

原创 Unity 卡死排查方法(游戏死循环、打包卡死)

unity2021.3.20f1目前打这种包会失败,提示代码量过大,后续unity2022升级NDK后解决,临时解决办法:https://forum.unity.com/threads/android-builds-failing-when-script-debugging-is-enabled.1027357/#post-7627372。查看当前unity的线程就可以定位什么问题了。打包需要勾选ScriptDebugging。打开线程窗口,调试->窗口->线程。只打arm64架构包。

2025-02-12 11:19:53 699

原创 热更图片方案

新增一个hotfix_img_mgr.lua,在config.lua require之后再初始化,方便后续热更调整3.1. 初始化时异步检查下载热更配置,注意容错:配置无,json.decode异常,配置缺"texture"等。3.2. 配置检查完异步下载图片资源,并缓存,下载超时时间根据图片大小(GetFileSizeWithUrl)设置超时时间,比如一个图1M,算较差情况100k每秒,1024/100=10s超时3.3. 旧包没导出’UnityWebRequestTexture‘ 接口,先加到导出

2025-02-12 11:02:25 388

原创 微端、语言包、补丁下载更新流程

微端:安卓上架应谷歌后台要求限制1G大小,所以只能用微端,另外微端有助于提升用户转化率:让玩家只需下载小包体就能进游戏,但其实进去完整体验还需要下载剩余资源。微端补丁:不同于整包补丁,是针对微端玩家更新的补丁,补丁内只带玩家前期微端所需的更新内容,所以补丁文件会更小,以提供转化率,文件后缀为。港台:最开始上的时候没有做语言补丁,目前台湾繁体资源是一起进包,没有语言包下载功能。韩服:韩服包只有一个韩语语种,简中也不支持,没必要搞语言包下载功能。安卓完整包:本文特指微端下载完exp包后的包体。

2025-02-12 10:43:17 332

原创 Untiy DLL断点无法命中问题, 手动转.pdb 为 .mdb 批处理

遍历当前目录索引DLL,执行Unity的pdb2mdb.exe工具for %%i in (*.dll) do ( F:/UnityHub/2019.3.2f1/Editor/Data/MonoBleedingEdge/bin/mono F:/UnityHub/2019.3.2f1/Editor/Data/MonoBleedingEdge/lib/mono/4.5/pdb2mdb.exe ...

2020-04-09 23:26:58 1260 2

原创 C#代码优化

C#代码优化参考书籍:《Effective C#》C# 托管资源和非托管资源:https://blog.youkuaiyun.com/zlwzlwzlw/article/details/7918633优先使用隐式类型的局部变量:即用var声明局部变量。考虑用readonly代替const。优先用is或as运算符,少用强转类型。用as把装箱的值类型转换成未装箱且可以为null的值类...

2020-02-09 19:39:40 1452

原创 游戏设计模式学习笔记(21)建造者模式

游戏设计模式学习笔记(21)建造者模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: http...

2019-10-06 16:25:12 538

原创 游戏设计模式学习笔记(20)工厂模式、抽象工厂模式

游戏设计模式学习笔记(20)工厂模式、抽象工厂模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云...

2019-10-06 15:53:36 585

原创 游戏设计模式学习笔记(18)访问者模式

游戏设计模式学习笔记(18)访问者模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: http...

2019-10-06 00:29:24 322

原创 游戏设计模式学习笔记(19)装饰模式、适配器模式、代理模式

游戏设计模式学习笔记(19)装饰模式、适配器模式、代理模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨...

2019-10-06 00:24:19 281

原创 游戏设计模式学习笔记(17)备忘录模式

游戏设计模式学习笔记(17)备忘录模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: http...

2019-10-05 22:28:50 205

原创 游戏设计模式学习笔记(13)桥接模式

游戏设计模式学习笔记(13)桥接模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: https...

2019-10-05 22:14:59 217

原创 游戏设计模式学习笔记(16)责任链模式

游戏设计模式学习笔记(16)责任链模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: http...

2019-10-05 22:09:09 323

原创 游戏设计模式学习笔记(15)模板模式

游戏设计模式学习笔记(15)模板模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: https...

2019-10-05 21:47:34 240

原创 游戏设计模式学习笔记(14)策略模式

游戏设计模式学习笔记(14)策略模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: https...

2019-10-05 21:17:27 265

原创 游戏设计模式学习笔记(12)中介者模式

游戏设计模式学习笔记(12)中介者模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: http...

2019-10-05 17:28:30 250

原创 游戏设计模式学习笔记(11)外观模式

游戏设计模式学习笔记(11)外观模式参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计模式】浅墨_毛星云: https...

2019-10-05 16:51:46 218

原创 游戏设计模式学习笔记(10)优化模式(数据局部性、脏标识、对象池、空间区分)

游戏设计模式学习笔记(10)优化模式(数据局部性、脏标识、对象池、空间区分)参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【...

2019-10-04 19:22:34 524

原创 游戏设计模式学习笔记(9)解耦模式(组件模式、事件队列、服务定位器)

游戏设计模式学习笔记(9)解耦模式(组件模式、事件队列、服务定位器)参考:《设计模式与游戏完美开发》《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)【游戏设计...

2019-10-04 16:57:58 421

Unity Entity 1.3.5 支持兼容HybridCLR免费版 测试工程

Unity Entity 1.3.5 支持兼容HybridCLR免费版 测试工程

2025-02-12

Unity Entity 1.3.5 支持兼容HybridCLR免费版

Unity Entity 1.3.5 支持兼容HybridCLR免费版

2025-02-12

git 支持关闭rename操作

https://blog.youkuaiyun.com/l773575310/article/details/145595386 git 支持关闭rename操作

2025-02-12

c++马踏棋盘贪心算法

c++解决马踏棋盘问题

2016-12-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除