- 博客(29)
- 收藏
- 关注
原创 IL2CPP 技术深度解析
IL2CPP 是 Unity 开发的高性能脚本后端,它将 .NET 的中间语言 (IL) 转换为 C++ 代码,再编译为原生平台二进制文件。以下是 IL2CPP 的全面技术剖析。
2025-05-05 22:46:21
1159
原创 Unity 一篇文章让你理解Mono
Mono 是一个开源的 .NET 兼容框架,由 Xamarin(现属微软)创建并维护。作为 Unity 长期使用的脚本后端,Mono 在游戏开发领域扮演着重要角色。以下从架构设计到实际应用的全面解析。
2025-05-04 15:21:41
623
原创 HybridCLR 详解:Unity 全平台原生 C# 热更新方案
HybridCLR(原 Huatuo)是 Unity 平台革命性的热更新解决方案,它通过扩展 Unity 的 IL2CPP 运行时,实现了基于原生 C# 的完整热更新能力。下面从原理到实践全面解析这一技术。
2025-05-03 08:37:46
1190
原创 Unity 几种主流的热更新方式
选择合适的热更新方案需要综合考虑项目规模、目标平台、团队技术栈和长期维护成本等因素。:在 Unity Editor 中设置资源的 AssetBundle 属性。大型项目:HybridCLR + AssetBundle。:AssetBundle 或 Addressables。├─ AssetBundle 加载。运行时动态加载更新的 AssetBundle。:运行时加载更新后的 AssetBundle。需要简化 AssetBundle 管理的项目。基于 AssetBundle 的增强方案。
2025-05-01 15:23:34
1552
原创 Unity AssetBundle (AB) 打包详解
资源压缩包,包含序列化资源文件可以包含任意 Unity 支持的资源类型支持按需加载和卸载是 Unity 热更新的基础技术。
2025-04-26 16:52:10
1529
原创 Unity中基于2.5D的碰撞系统
混合使用2D物理和自定义Z轴检测:利用Unity的2D物理系统处理主要碰撞,再通过Z轴位置筛选有效碰撞分层处理:将游戏世界分为多个逻辑层,每层有独立的碰撞规则性能优化:使用空间分区、碰撞缓存等技术减少计算量特殊场景处理:针对斜坡、平台边缘等特殊地形实现专门的检测逻辑动态调整:根据角色位置动态调整碰撞参数,实现更自然的交互这种方案在保持良好性能的同时,能够提供足够精确的碰撞检测,满足大多数2.5D游戏的需求。
2025-04-09 22:28:54
574
原创 Unity DoTween笔记
DOTween 的强大之处在于它的简洁性和灵活性,几乎可以为 Unity 中的任何属性创建动画效果。通过组合基本动画和序列,可以创建出复杂的动画效果而无需编写大量代码。在对象销毁时,相关的 Tween 会自动杀灭。
2025-04-06 11:04:52
342
原创 Unity URP渲染管线详解
Universal Render Pipeline (URP,通用渲染管线)是Unity推出的轻量级、高性能渲染管线解决方案,适用于移动平台、PC和主机等多种平台。
2025-04-04 19:20:50
2000
原创 Unity UGUI高级优化 自定义顶点流详解
/ 绘制圆形vh.Clear();// 分段数// 中心顶点// 周边顶点i++)// 添加三角形i++)
2025-03-31 15:17:58
541
原创 Unity物理碰撞检测详解
碰撞检测是 Unity 物理系统的核心功能,用于检测和处理游戏对象之间的交互。下面我将从基础到高级全面解析 Unity 的碰撞检测机制。
2025-03-30 11:31:27
1236
原创 Unity射线详解与应用
射线检测是 Unity 中一种高效的空间检测技术,广泛应用于射击游戏、视线检测、物体选取等场景。以下是 Unity 射线系统的全面解析。
2025-03-29 10:53:16
664
原创 Unity对象池技术复习
对象池(Object Pooling)是一种优化技术,用于管理可重用对象的创建和回收,特别适用于需要频繁创建和销毁相同类型对象的场景(如子弹、敌人、特效等)。在Unity中使用对象池可以显著减少实例化(Instantiate)和销毁(Destroy)操作带来的性能开销。
2025-03-28 14:53:24
554
原创 Unity波函数坍缩算法笔记
波函数塌缩(Wave Function Collapse, WFC)是一种基于约束的生成算法,常用于程序化内容生成,在Unity中可以用来生成各种类型的游戏内容如地形、建筑、关卡等。以瓦片生成地图为例:每一次随机的用瓦片填充地图的行为叫做一次坍缩而为了生产连贯或而不乱的地图,我们需要为此制定规则,这个规则可以是任意的,取决于开发者设计好规则后,便可以以此规则用瓦片对地图进行填充当我们填充一次后问题来了,接下来要对哪个方位进行填充呢?
2025-03-26 21:05:10
368
原创 C++模版与泛型编程
模板(Templates)是C++最强大但也最复杂的特性之一,它使得泛型编程(Generic Programming)成为可能。下面我将从基础到高级全面讲解这一核心特性。
2025-03-25 08:52:17
260
原创 C++多线程
CPU调度的基本单位,是进程内的执行单元,共享进程的地址空间。头文件提供了原子类型和操作,无需锁即可实现线程安全。信号量(semaphore)和锁存器(latch):操作系统资源分配的基本单位,拥有独立的地址空间。:多个任务真正同时执行,需要多核CPU支持。用于线程间通信,允许线程等待特定条件成立。:多个任务交替执行,宏观上"同时"运行。:线程创建和同步有开销,避免过度使用。:使用互斥量或原子操作保护共享数据。: 分离线程,使其成为守护线程。: 可重入且带超时的互斥量。: 更灵活的RAII锁管理。
2025-03-24 20:24:25
388
原创 UnityShader之深度测试
在Unity中,深度测试(Depth Testing)是图形渲染中的一个重要概念,用于决定哪些像素应该被绘制到屏幕上。深度测试通常用于处理物体之间的遮挡关系,确保离相机更近的物体能够正确地遮挡住离相机更远的物体。
2025-03-23 11:13:51
964
原创 Unity如何实现书本翻页(Shader实现)
通过Shader实现翻书效果可以带来更高的灵活性和逼真度。可以通过调整Shader参数和脚本控制来实现不同的翻页效果。如果你想需要更复杂的效果,可以结合数学函数和光照模型来进一步优化,这里不展开写了。如果需要更逼真的效果,可以将Shader改为Surface Shader,并添加光照和阴影支持。如果需要更复杂的弯曲效果,可以使用数学函数(如贝塞尔曲线)来模拟翻页的形状。如果需要实现多页翻动,可以为每一页单独设置材质,并分别控制它们的。:控制折叠的锐度,值越大,折叠越明显。参数来控制弯曲的锐度。
2025-03-22 17:34:10
481
原创 如何在Unity中实现头发渲染
对于半透明的物体,需要从后向前渲染保证渲染的正确性对于有头发的头,这和头发从内向外渲染很相似。这个可以在制作模型的时候,内部的顶点坐标往前放,外部的顶点坐标向后放,主要是索引的顺序要正确。按照下面的顺序去渲染,分4个pass (深度写入,不透明,半透明背面,半透明正面)第一个pass,使用alphaTest剔除半透明像素,禁用背面剔除,写入深度,深度检测为less,不需要渲染颜色,只需要写入深度。
2025-03-21 20:38:03
1629
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人