- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 Unity FairyGUI高斯模糊实现方法
GComponent view = UIPackage.CreateObject("包名", "组件名").asCom;GComponent comp = UIPackage.CreateObject("包名", "组件名").asCom;Debug.Log($"模糊半径 {i},耗时:{sw.ElapsedMilliseconds}ms");// 下采样,1=原始,2=1/2分辨率,性能更好但质量更低。// 模糊半径,值越大越模糊(0-10)text.text = "这是测试文本,将会被模糊";
2026-01-07 19:57:35
747
原创 Unity DOTS技术栈详解
DOTS(Data-Oriented Technology Stack,面向数据的技术栈)是Unity推出的高性能编程框架,旨在充分利用现代多核处理器架构,解决传统面向对象编程在游戏开发中的性能瓶颈。Unity DOTS代表了游戏引擎架构的重大革新,从传统的面向对象模型转向面向数据的架构。虽然学习曲线较陡,但它为处理大规模模拟和高性能计算提供了强大的解决方案。随着Unity的持续投入和社区的发展,DOTS正在成为Unity高性能开发的标准选择。对于新项目,建议评估具体需求;
2026-01-05 19:42:14
776
原创 Unity的ECS(Entity Component System)架构详解
Unity的ECS(Entity Component System)架构是一种高性能的数据导向设计模式,。下面是对其核心概念、优势和实践的详细解析。
2026-01-05 19:29:02
716
原创 VirtualBox 安装 CentOS 7.2
└─ [光驱] → 选择 CentOS-7-x86_64-DVD-1511.iso。• 有线网络: Intel(R) Ethernet Connection...• 无线网络: Intel(R) Wireless-AC...• MAC地址: 080027XXXXXX (保持默认)• Minimal Install (最小化安装,仅命令行)• Server with GUI (带图形界面的服务器)• Method: Manual (手动配置)• Automatic (自动分区) - 推荐新手。
2026-01-04 09:46:53
890
原创 ShaderLab 基本结构详解
hlsl// 输入结构体struct appdata_tan // 带切线的输入// 输出结构体// 复杂输出(支持多光源)SHADOW_COORDS(5) // 阴影坐标,占用TEXCOORD5UNITY_FOG_COORDS(6) // 雾坐标,占用TEXCOORD6#endifhlsl// 关联自定义编辑器脚本// 内置编辑器。
2025-12-31 23:41:44
584
原创 Unity Shader 入门指南
定义:Shader(着色器)是运行在GPU上的程序,用于控制3D图形的渲染方式作用:决定物体如何呈现(颜色、光照、纹理、特效等)类型Vertex Shader(顶点着色器):处理每个顶点的位置Fragment/Pixel Shader(片元/像素着色器):处理每个像素的颜色。
2025-12-30 08:56:06
628
原创 计算机渲染管线流程(通俗易懂)
希望这个“电影工作室”的比喻能帮助你理解这个复杂但精妙的过程!计算机渲染管线是将三维场景转换为二维图像的一系列处理阶段。以下是。
2025-12-29 18:06:20
1048
原创 串口通信-街机游戏分机板方案(cocos2dx)
跨平台支持:支持Windows、Android等平台多种连接方式:支持串口、TCP网络连接协议完整性:完整的通信协议解析和封装线程安全:多线程安全的数据处理自动重连:断线自动重连机制配置管理:JSON格式的配置文件模拟测试:内置模拟器便于测试易于集成:简单的API接口,易于在游戏中使用使用时可以根据具体的硬件协议调整协议解析部分,其他部分可以重用。
2025-12-26 19:05:01
633
原创 串口通信-80K6+控制器是用于驱动EPSON M-T500系列热敏机芯(cocos2dx)
跨平台支持:完整的Windows、Android、iOS实现异步操作:所有打印操作都支持异步,不阻塞主线程错误处理:完善的错误码和恢复机制状态监控:实时监控打印机状态任务队列:支持多任务排队打印性能统计:记录打印统计信息UI集成:完整的Cocos2d-x UI层配置管理:支持配置文件保存和加载图像处理:支持精灵转换为打印图像多种打印格式:文本、条码、QR码、表格、图像这个完整实现提供了企业级的打印机控制解决方案,可以直接集成到Cocos2d-x项目中,支持热敏打印机的所有功能。
2025-12-25 13:59:08
469
原创 Unity UniRx Observable 类详解及使用
Observable 是 UniRx 中的核心概念,代表一个可观察的数据流。它可以发射多个值(异步或同步),订阅者可以监听这些值。csharp// 自定义 Observable 扩展方法});});});});UniRx 的 Observable 提供了强大的响应式编程能力,特别适合处理 Unity 中的异步操作和事件流。通过合理使用各种操作符,可以写出更简洁、可维护的代码。关键是要理解数据流的概念,并掌握如何组合和转换这些流来满足不同的需求。
2025-12-24 13:07:39
511
原创 数学基础-矩阵与变换
我们生活在 3D 空间,屏幕是 2D 空间,甚至可以抽象出 1D 直线空间。空间变换,就是对空间中的 “点” 或 “向量” 做 “改造”—— 比如移动位置、放大缩小、旋转方向、拉伸变形等。把一张照片放大 2 倍(缩放变换);把手机屏幕顺时针转 90 度(旋转变换);把一个正方形拉成平行四边形(剪切变换);把地图上的点从北京移到上海(平移变换)。这些看似不同的操作,都可以用统一的数学工具 ——矩阵来描述。而其中最基础、最核心的是 “线性变换”,矩阵与线性变换几乎是 “一一对应” 的关系。
2025-12-23 15:09:53
913
原创 unity射线与几何检测 - “与世界的交互”
/ 世界空间中的击中点。// 击中表面的法线方向。// 击中的三角形索引。// 击中的游戏对象。// 击中的变换组件。Debug.Log($"击中: {hit.collider.name} 在距离 {hit.distance} 处");Debug.Log($"点击了: {hit.collider.gameObject.name}");
2025-12-22 18:45:39
1135
原创 unity矩阵与变换 - “空间转换的魔术”
/ 但实际上,因为矩阵乘法是左乘,所以应用时先应用scale,再rotation,最后translation。// 这是一个点,不是向量。// 方法2:使用乘法操作符(注意:这个操作符实际上是MultiplyPoint3x4,需要点w=1)
2025-12-22 18:42:52
575
原创 unity四元数 - “处理旋转的大师”
/ 绕Y轴旋转90度。// 对于单位四元数,逆等于共轭:q⁻¹ = q* = (-x, -y, -z, w)
2025-12-22 18:39:47
694
原创 unity-向量数学 - “方向与力的语言”
/ (0, 0, 1) 或 -1,取决于顺序。// 0(因为cos90°=0)// 2D向量(UI、2D游戏)// 5 (勾股定理:√(3²+4²)=5)Vector3 input = new Vector3(0.5f, 0, 0.5f);// 3D向量(3D游戏)Vector3 direction = new Vector3(1, 0, 0);
2025-12-19 15:04:39
1515
原创 向量在计算机图形学中的核心应用
点积:a⃗⋅b⃗=∥a⃗∥∥b⃗∥cosθa⋅b=∥a∥∥b∥cosθ,其中 θθ 为两向量夹角。代数计算:a⃗⋅b⃗=a1b1+a2b2a⋅b=a1b1+a2b2(二维),三维类似。叉积:a⃗×b⃗a×b 结果是一个向量,其大小为 ∥a⃗∥∥b⃗∥sinθ∥a∥∥b∥sinθ,方向垂直于 a⃗a 和 b⃗b 所在平面,遵循右手定则。向量空间是由向量构成的集合,满足加法和标量乘法的封闭性及八条运算法则。例如:二维平面所有向量构成二维向量空间 R2R2,三维空间所有向量构成 R3R3。
2025-12-18 18:44:48
656
原创 3D游戏数学基础指南
不用担心,我们不需要成为数学家,而是要学会“游戏程序员”式的数学思维。在进行复杂变换时(例如,先旋转再平移 vs 先平移再旋转),顺序不同结果截然不同。这是Unity处理3D旋转的默认方式,旨在解决传统欧拉角(0-360度的角度)的“万向节死锁”问题。从“如何让角色朝鼠标点击的位置移动”这样的具体问题出发,你会自然地学会向量减法、归一化和。:一个4x4的数字网格,可以一次性表示物体的所有变换信息。:计算面的法线、计算旋转轴(例如,让物体绕某个轴旋转)。:结果是一个新的向量,垂直于原始两个向量所在的平面。
2025-12-18 12:05:57
548
原创 Unity中C#状态模式详解
csharp// 选择目标状态机return;Repaint();// 绘制状态节点// 绘制状态转换// 如果是当前状态,高亮显示// 绘制箭头和标签// 通过反射获取所有状态// 获取状态转换信息#endif使用场景推荐实现优点简单状态(<5个)枚举 + switch简单直接,性能好中等复杂度经典状态模式结构清晰,易维护复杂AI/角色分层状态机。
2025-12-17 12:12:26
988
原创 C# 异步编程详解
理解async/await状态机:编译器将async方法转换为状态机合理使用ConfigureAwait:库代码使用false,UI代码根据需要选择正确处理异常和取消:避免未观察到的异常和资源泄漏避免阻塞异步代码:不要使用.Result或.Wait()考虑使用ValueTask:对于可能同步完成的高频调用利用异步流:处理大量异步数据注意线程上下文:了解执行在哪个线程上恢复。
2025-12-16 18:03:25
907
原创 C#特性(Attributes)详解
csharp// 第一步:创建特性类// 1. 必须继承System.Attribute// 2. 按惯例类名以"Attribute"结尾// 可以有一些属性set;set;// 第二步:使用特性[MyNote(Note = "这是一个重要的类", Created = "2024-01-01")][MyNote(Note = "核心方法")]Console.WriteLine("做一些重要的事情");用途类比代码示例标记过时方法贴"过期"标签[Obsolete]条件编译。
2025-12-15 11:06:12
518
原创 Unity 中的反射使用详解
性能:避免在 Update 等频繁调用的方法中使用反射平台兼容性:注意 IL2CPP 和 AOT 平台的限制缓存优化:对频繁使用的反射结果进行缓存安全考虑:特别是对于用户输入的反射调用要进行验证正确使用反射可以极大提高 Unity 项目的灵活性和可扩展性,特别是在编辑器工具开发、配置系统和插件架构中。
2025-12-15 10:14:18
944
原创 C# 反射详解
反射(Reflection)是.NET框架提供的强大功能,允许在运行时:检查程序集、模块和类型的元数据动态创建类型实例动态调用方法和访问属性/字段在运行时创建新类型(动态代码生成)核心命名空间反射是C#中强大但需要谨慎使用的特性。正确的使用场景包括:插件系统开发序列化/反序列化ORM框架动态代理测试框架在实际开发中,应权衡反射带来的灵活性和性能开销,必要时使用缓存、委托或表达式树进行优化。
2025-12-12 12:37:04
1028
原创 C# 委托/事件/UnityEvent 详解
csharp// 自定义委托// 基于自定义委托的事件set= value)委托:是基础,用于方法引用和回调事件:基于委托,提供更好的封装,适合组件间通信UnityEvent:Unity专用,提供编辑器集成,适合非程序员配置在Unity开发中:使用C#事件处理纯代码逻辑使用UnityEvent处理需要在编辑器中配置的交互两者可以结合使用,发挥各自优势。
2025-12-11 20:45:43
902
原创 LINQ 高性能替换方案总结
测量优先:不要过早优化,先用性能分析工具找出热点渐进优化:从最高频、最耗时的操作开始保持可读性:复杂的优化要添加充分的注释考虑维护成本:优化代码通常更难维护测试回归:确保优化不改变功能逻辑文档记录:记录为什么选择特定优化方案LINQ 的便利性和可读性通常比微小的性能提升更有价值。只在性能确实成为瓶颈时才考虑这些替换方案。
2025-12-10 09:49:59
1130
原创 C# LINQ 深度解析:优缺点与性能陷阱
csharp// 创建自定义 LINQ 提供程序的基础// 解析表达式树并执行查询// 自定义表达式树翻译逻辑。
2025-12-09 20:45:32
906
原创 Unity 资源热更新管理
接上一篇的AssetBundle管理,完善HotUpdateManager 类,实现完整的资源热更新系统:csharp/// 更新模式Full, // 全量更新Differential, // 差分更新Smart // 智能更新(根据网络状况自动选择)/// 更新状态Idle, // 空闲Checking, // 检查更新Downloading, // 下载中。
2025-12-08 17:34:13
758
原创 Unity AssetBundle 管理与加载流程详解
资源热更新按需加载(减少初始包体大小)DLC 内容分发平台适配(不同平台使用不同资源)合理规划 Bundle:按功能模块、使用频率划分异步加载:避免主线程卡顿依赖管理:确保先加载依赖资源内存管理:及时卸载不再使用的资源版本控制:实现可靠的热更新机制错误处理:网络异常、文件损坏等情况的处理性能监控:添加加载时间、内存使用监控。
2025-12-08 15:25:33
812
原创 Unity 对象池工具类优化版本
集成了多种高性能技术和模式:csharp#region 核心接口/// 超快速对象池接口(零GC分配)T Rent();/// 池化策略接口T Create();#endregion#region 环形缓冲池(Lock-Free,零GC)/// 基于环形缓冲区的超高速对象池(线程安全)// 使用固定数组避免GC// 线程安全计数器// 性能监控?// 初始化空闲链表i++)
2025-12-05 09:51:04
591
原创 Unity C# 中的 Unsafe 代码详解
Unsafe 代码是 C# 中允许直接操作内存和指针的特性,它绕过了 CLR(公共语言运行时)的一些安全检查。在 Unity 中,使用 Unsafe 代码可以:直接操作内存地址使用指针类型进行底层内存操作提高特定场景下的性能性能关键代码:需要极致优化的算法原生代码交互:与 C/C++ 库交互内存操作:需要直接内存操作的任务数据处理:大规模数据处理和变换。
2025-12-04 20:39:02
743
原创 Unity Profiler 使用详解
Unity Profiler 是 Unity 官方提供的性能分析工具,主要用于:识别性能瓶颈分析内存使用情况检测 GC 分配优化 CPU/GPU 性能诊断卡顿和掉帧问题csharp// 创建自定义采样器// 创建自定义记录器// 记录自定义操作耗时// 执行需要监控的代码// 获取GC分配数据if (gcAlloc > 1.0f) // 如果GC分配超过1ms。
2025-12-03 19:10:14
774
原创 Unity内存管理与GC优化详解
优先使用值类型:小型数据结构用struct重用对象:使用对象池和缓存预分配集合:List/Array预设容量避免装箱:使用泛型小心字符串:用StringBuilder限制LINQ使用:热点路径手动实现管理Unity对象:及时销毁无用资源监控性能:定期使用Profiler。
2025-12-03 00:48:43
757
原创 ScriptableObject 事件系统详解
完全解耦:组件之间不需要相互引用可重用性:事件通道资产可以在整个项目中重复使用编辑器友好:可以在 Inspector 中可视化配置类型安全:泛型事件通道提供编译时类型检查易于调试:可以轻松追踪事件触发和监听支持复杂场景:跨场景、跨预制件通信性能良好:避免了反射开销,接近直接方法调用的性能。
2025-12-02 00:33:22
493
原创 python 分包脚本(python版本3.8+)
print(f"[{idx}/{len(packages)}] 正在处理分包,包含 {len(pkg)} 个文件...")print(f"跳过问题文件 {abs_path}:{str(e)}")raise RuntimeError(f"压缩失败:{str(e)}") from e。print(f"错误:分包 {idx} 处理失败 - {str(e)}")print(f"生成 {len(packages)} 个分包\n")print(f"找到 {len(files)} 个待处理文件")
2025-05-15 11:34:44
1001
原创 cocos2dx 3.0 android windows环境搭建
主要介绍cocos2d-x环境的设置以及android的环境搭建1、下载cocos2d-x 3.0正式版http://www.cocos2d-x.org/download2、下载android的sdk以及ndkhttp://developer.android.com/sdk/index.html3、下载anthttp://ant.apache.org(注:c
2014-05-17 20:09:42
809
原创 VS2010 android
1、下载安装JDKhttp://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html安装完JDK后,添加环境变量:JAVA_HOME 我的是:D:\Program Files\Java\jdk1.6.0_432、下载安装android sdk
2013-03-31 22:43:55
1449
vs-android_samples.zip
2013-03-31
vs-android-0.94.zip
2013-03-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
3