自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 简述Unity的资源加载和内存管理

Unity的资源加载和内存管理是一个系统工程,开发者需要根据项目的具体需求选择合适的资源加载方式,并合理管理资源的加载和卸载。

2025-06-12 13:26:06 608

原创 走迷宫 II

走迷宫 II - 详细题解

2025-06-10 19:51:02 324

原创 选取货物 - 题解(0-1背包问题)

选取货物 - 详细题解(0-1背包问题)

2025-06-09 19:34:10 712

原创 LeetCode 2297. 跳跃游戏 VIII(中等)

LeetCode 2297 跳跃游戏 VIII 是一道综合性很强的算法题,主要考查:单调栈的应用:理解两种跳跃条件对应的单调栈类型动态规划思想:用dp记录到达每个位置的最小代价贪心策略:通过单调栈保证找到的跳跃目标是最优的这道题的关键在于正确理解跳跃条件,并选择合适的数据结构来高效实现。单调栈的使用使得算法复杂度降到了线性,是解决此类问题的经典方法。

2025-06-04 14:38:13 496

原创 多线程编程中的数据竞争与内存可见性问题解析

在多线程编程中,直觉往往是不可靠的,只有深入理解底层机制,才能写出正确的并发代码。多线程编程远比表面看起来复杂。每一个共享变量的访问都需要仔细考虑,每一个看似简单的操作都可能隐藏着并发陷阱。

2025-06-03 13:43:58 677

原创 LeetCode 1871. 跳跃游戏 VII(中等)

LeetCode 1871. 跳跃游戏 VII - 详细题解

2025-05-28 19:35:37 713

原创 了解一下C#的SortedSet

SortedSet<T> 是 .NET Framework 4.0 引入的一个泛型集合类,它实现了一个自动排序的集合,内部使用红黑树数据结构来维护元素的有序性。

2025-05-27 14:45:13 1107

原创 LeetCode 1696. 跳跃游戏 VI(中等)

LeetCode 1696. 跳跃游戏 VI - 详细题解

2025-05-27 12:33:34 829

原创 LeetCode 1340. 跳跃游戏 V(困难)

LeetCode 1340. 跳跃游戏 V - 详细题解

2025-05-22 14:43:15 931

原创 LeetCode 1345. 跳跃游戏 IV(困难)

LeetCode 1345. 跳跃游戏 IV - 详细题解

2025-05-20 13:16:19 1213

原创 LeetCode 1306. 跳跃游戏 III(中等)

LeetCode 1306. 跳跃游戏 III - 详细题解

2025-05-19 14:19:05 895

原创 LeetCode 45. 跳跃游戏 II(中等)

LeetCode 45. 跳跃游戏 II - 详细题解

2025-05-15 12:06:54 736

原创 LeetCode 55. 跳跃游戏(中等)

LeetCode 55. 跳跃游戏 - 详细题解

2025-05-14 14:42:11 942

原创 Unity微信小游戏打开游戏圈

Unity微信小游戏打开游戏圈功能

2025-05-13 19:15:39 820

原创 LeetCode 714. 买卖股票的最佳时机含手续费(中等)

LeetCode 714. 买卖股票的最佳时机含手续费 - 详细题解

2025-05-13 15:07:23 718

原创 Unity图集系统(Sprite Atlas)

Unity的图集系统是一个强大且易用的工具,专为优化2D图像资源设计。通过将多个小图像合并成一张大纹理,它能有效减少Draw Call,提升游戏性能。开发者只需简单配置,就能利用图集系统的自动化管理功能优化项目,特别适合UI密集或2D动画复杂的场景。

2025-05-08 11:50:28 920

原创 Unity Shader Properties详解

Unity Shader的Properties是Shader代码与Unity编辑器交互的核心。通过Properties,开发者可以定义灵活的参数,使用户通过材质面板直观地调整Shader效果。掌握Properties的语法、类型和用法,是编写高质量Shader的基础。无论是简单的颜色调整,还是复杂的纹理映射,Properties都能为Shader开发提供强大的支持。

2025-04-25 11:51:28 965

原创 Unity常用内置变换矩阵

Unity的内置变换矩阵为开发者提供了强大的工具,能够在Shader中灵活处理坐标变换和光照计算。从基础的MVP变换到高级的光照和纹理处理,这些矩阵为实现高质量渲染效果奠定了基础。掌握它们的作用和用法,将大大提升开发效率和渲染表现。

2025-04-23 11:33:12 1062

原创 简单了解一下Unity Shader中的Swizzle操作

Swizzle操作是Unity着色器中一个强大而灵活的特性,能够显著提升代码简洁性和可读性。掌握这一特性可以帮助你编写更高效、更简洁的着色器代码,特别是在处理向量变换、颜色操作和纹理采样等常见着色器任务时尤为有用。通过深入理解和合理运用swizzle操作,你可以充分发挥着色器语言的表达能力,创造出更加优化和高效的图形效果。

2025-04-21 12:02:20 903

原创 Unity动态合批(Dynamic Batching)解析

动态合批是Unity中一项强大而基础的优化技术,专为处理大量小型动态物体而设计。虽然它有严格的限制条件,但在适当的场景中可以显著提升性能。通过理解其工作原理和限制,开发者可以更有效地利用动态合批,与其他批处理技术结合,创建高性能的游戏场景。

2025-04-17 12:56:43 1245

原创 了解一下Unity的RenderQueue

RenderQueue是Unity中控制物体渲染顺序的核心工具。通过合理设置队列值,你可以轻松处理不透明物体、透明物体和UI元素的绘制顺序,提升游戏的视觉效果。无论是通过Inspector手动调整,还是用脚本和Shader动态控制,掌握RenderQueue都能让你的开发更加得心应手。

2025-04-15 13:12:31 1596

原创 Unity存储小能手:PlayerPrefs指南

PlayerPrefs 是 Unity 提供的一个极其方便的工具,用于在设备本地快速、简单地存储少量的 int, float, string 类型数据。它非常适合保存用户设置、简单的游戏状态标记和非关键的本地得分。然而,开发者必须清醒地认识到它的局限性:有限的数据类型、不适合大量数据、以及完全不安全的特性。明智地选择使用场景,避免用它存储敏感或关键数据,才能真正发挥其作为本地数据存储“利器”的作用。

2025-04-13 21:25:01 1114

原创 简述一下Unity的UnityWebRequest

UnityWebRequest是Unity中处理网络请求的首选工具,提供了灵活、高效的API,支持多种HTTP方法和复杂的网络操作。通过本文的介绍,你应该已经掌握了UnityWebRequest的基本用法和注意事项。在实际项目中,合理使用UnityWebRequest可以帮助你轻松实现与服务器的交互,提升游戏的动态性和互动性。

2025-04-12 17:34:42 1540

原创 简单了解一下Unity的Resources.UnloadUnusedAssets

本文深入探讨了Unity中Resources.UnloadUnusedAssets()方法的作用、应用场景及其执行原理。该方法用于卸载内存中未被引用的资源,以优化游戏性能和内存管理。文章详细介绍了在场景切换、动态资源加载等场景下如何使用该方法,并强调了其异步执行特性及对性能的影响。通过示例代码和注意事项,读者可以更好地理解如何在Unity项目中合理调用此方法,以确保资源的有效释放和游戏的流畅运行。

2025-04-10 14:59:20 1245

原创 Unity DOTween动画在微信小游戏平台上的问题及解决方案

微信小游戏iOS高性能模式是解决Unity导出项目中动画问题的有效方案,尤其对于依赖协程和DOTween的动画效果。但它带来的适配工作不可忽视,需要开发者权衡利弊。

2025-04-09 17:40:31 392

原创 简述Unity对多线程的支持限制和注意事项

Unity中的多线程像是一个强大但危险的工具。记住这些原则:1.主线程处理Unity API,子线程只做纯计算2.使用线程安全的方式在线程间传递数据3.妥善管理线程的生命周期4.合理规划线程数量,避免过度使用掌握这些技巧后,你就能安全地利用多线程来提升游戏性能,同时避免那些难以调试的多线程噩梦。

2025-04-07 14:46:06 930

原创 简单描述一下Unity物理系统的主要性能消耗点

本文分析了Unity中物理系统的性能消耗来源,主要集中在基于PhysX引擎的几个核心方面:碰撞检测(粗略检测与精确检测)、刚体模拟(运动状态计算)、约束和关节(物理限制处理)、物理材质(摩擦与弹力计算)以及射线投射(手动查询)。这些消耗主要发生在FixedUpdate周期内,受物体数量、碰撞体类型和物理交互频率的影响。文章还提供了优化建议,如减少动态刚体、使用简单碰撞体和调整层级碰撞矩阵,以降低物理开销并提升游戏性能。

2025-04-02 11:28:58 1183

原创 Unity中MonoBehaviour组件禁用时协程的行为

当一个 Unity 的 MonoBehaviour 组件被禁用(即 enabled 属性设置为 false)时,由该组件实例启动的 协程 (Coroutine) 并不会自动停止

2025-04-01 13:31:10 487

原创 Unity协程的退出方式

本文详细阐述了Unity中协程的几种退出方式

2025-04-01 11:46:45 991

原创 LeetCode 188. 买卖股票的最佳时机 IV(困难)

这道题通过动态规划解决了“最多 k 次交易”的股票买卖问题。Java 和 C# 的实现提供了两种方案:1. 三维 DP 数组版:逻辑直观,适合理解问题。2. 优化空间版:使用滚动数组,节省内存。

2025-03-31 23:34:40 899

原创 解释一下Unity碰撞的触发条件

本文详细探讨了Unity引擎中碰撞和触发器事件的触发条件及其区别。碰撞事件(Collision)的触发需满足以下条件:两个物体均需具备碰撞体(Collider),且至少一个物体附带刚体(Rigidbody),同时碰撞体未被标记为触发器。这种配置适用于模拟真实的物理交互。触发器事件(Trigger)则要求至少一个碰撞体被设置为触发器,用于检测物体间的重叠,而不产生物理反应。文章指出,刚体在碰撞检测中扮演关键角色,并强调在游戏开发中,合理配置碰撞体和刚体属性是实现设计意图的重要基础。

2025-03-31 11:24:38 948

原创 简单了解一下Unity的MaterialPropertyBlock

MaterialPropertyBlock是Unity中一个强大且高效的工具,它允许开发者在不创建新材质实例的情况下,为每个渲染器独立设置材质属性。相比直接使用material属性,它在内存使用和渲染性能上具有明显优势,尤其适合处理大量物体的个性化需求。通过合理使用MaterialPropertyBlock,开发者可以在保持灵活性的同时优化游戏性能,是提升项目效率的重要手段。

2025-03-29 21:52:22 1248

原创 简单介绍一下Unity中的material和sharedMaterial

material和sharedMaterial是Unity中访问材质的两种方式:material 返回一个独立的材质实例,适合为特定物体定制属性,但可能会增加内存开销。sharedMaterial 返回共享的材质资源,适合多个物体共享属性,修改时影响范围广。

2025-03-29 15:00:55 1083

原创 简单介绍一下Unity中的ScriptableObject

ScriptableObject是Unity中改变游戏架构思维方式的强大工具。通过将数据从行为中分离,它促进了更加模块化、数据驱动和可维护的设计。对于需要处理大量游戏数据、建立可扩展系统或改善团队工作流程的项目,ScriptableObject是不可或缺的工具。

2025-03-27 14:16:01 1212

原创 LeetCode 123. 买卖股票的最佳时机 III(困难)

买卖股票的最佳时机III是一个典型的动态规划问题,关键在于正确定义状态和状态转移方程。我们分别介绍了两种解法:标准动态规划解法:使用二维数组记录每天在不同交易状态下的最大利润,通过状态转移方程计算最终结果。空间优化解法:观察到每个状态只依赖于前一天的状态,将空间复杂度从O(n)优化到O(1)。

2025-03-26 22:23:02 723

原创 Unity中对象池(Object Pool)技术解析与实现

本文深入探讨了对象池(Object Pool)在游戏开发中的应用与实现。对象池是一种设计模式,通过预先创建并重用对象,避免频繁的内存分配和释放,从而显著提升游戏性能。文章阐述了在Unity中使用对象池的必要性,并提供了一个简单实用的代码示例,展示了如何构建一个基础的对象池类,包括对象的预实例化、获取和归还功能。本文旨在帮助读者快速掌握对象池的核心理念及其在实际开发中的优化作用,提升游戏的流畅度和效率。

2025-03-25 11:22:28 1442

原创 简述一下Unity中的碰撞检测

Unity的碰撞检测通过PhysX物理引擎实现,依赖碰撞体和刚体组件。碰撞(Collision)适用于物理交互场景,使用OnCollisionEnter等回调;触发(Trigger)适用于无物理响应的检测,使用OnTriggerEnter等回调。优化性能的关键在于减少碰撞体数量、使用层级碰撞矩阵、合理选择触发器和减少物理模拟物体。通过这些方法,可以在保证功能的前提下提升游戏性能。

2025-03-21 19:26:46 2177

原创 LeetCode 309. 买卖股票的最佳时机含冷冻期(中等)

LeetCode 309. 买卖股票的最佳时机含冷冻期 - 详细题解

2025-03-19 11:57:11 962

原创 Unity的StripEngineCode详细介绍与实践

StripEngineCode是Unity中的一项优化功能,通过剥离未使用的引擎代码来减小游戏包体大小。本文详细介绍了其用法与实践经验,为开发者提供了实用的指导。文章首先阐述了StripEngineCode的定义及其在移动平台游戏开发中的重要性,随后详细讲解了配置方法,包括在Player Settings中启用功能和调整剥离级别。此外,文章提供了实践建议,如全面测试、谨慎选择剥离内容、定期检查包体大小及结合其他优化手段。同时,强调了使用时的注意事项,例如可能影响功能稳定性、需进行回归测试及平台差异问题。结论

2025-03-18 12:57:02 1126

原创 Unity 运行报错:InvalidOperationException: Insecure connection not allowed 的原因

Unity 运行报错:InvalidOperationException: Insecure connection not allowed 的原因

2025-03-17 13:12:22 906

空空如也

空空如也

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

TA关注的人

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