自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unity开发中常用的洗牌算法

游戏开发中的洗牌算法 ,真随机与伪随机

2025-07-12 22:02:54 656

原创 LeetCode Hot 100 环形链表

指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。

2025-07-11 09:45:09 320

原创 LeetCode Hot 100 回文链表

请你判断该链表是否为回文链表。给你一个单链表的头节点。

2025-07-11 09:43:50 184

原创 LeetCode Hot 100 反转链表

链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。

2025-07-10 21:31:06 214

原创 LeetCode Hot 100 相交链表

请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。给你两个单链表的头节点。

2025-07-10 21:29:59 1114

原创 LeetCode Hot 100 搜索二维矩阵 II

编写一个高效的算法来搜索。

2025-07-09 11:19:30 411

原创 LeetCode Hot 100 旋转图像

旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。使用另一个矩阵来旋转图像。

2025-07-09 11:18:31 263

原创 LeetCode Hot 100 螺旋矩阵

返回矩阵中的所有元素。

2025-07-08 12:06:29 318

原创 LeetCode Hot 100 矩阵置零

则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。

2025-07-08 12:05:33 194

原创 LeetCode Hot 100 缺失的第一个正数

请你找出其中没有出现的最小的正整数。并且只使用常数级别额外空间的解决方案。范围 [1,2] 中的数字都在数组中。1 在数组中,但 2 没有。给你一个未排序的整数数组。最小的正数 1 没有出现。请你实现时间复杂度为。

2025-07-07 12:04:47 333

原创 LeetCode Hot 100 除自身以外数组的乘积

的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组。之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。时间复杂度内完成此题。

2025-07-07 12:03:23 174

原创 LeetCode Hot 100 轮转数组

向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。

2025-07-07 12:02:37 151

原创 LeetCode Hot 100 最小覆盖子串

没错,其实在 s 中,有的字符我们是不关心的,我们只关心 t 中出现的字符,我们可不可以先预处理 s,扔掉那些 t 中没有出现的字符,然后再做滑动窗口呢?在滑动窗口类型的问题中都会有两个指针,一个用于「延伸」现有窗口的 r 指针,和一个用于「收缩」窗口的 l 指针。我们可以用一个哈希表表示 t 中所有的字符以及它们的个数,用一个哈希表动态维护窗口中所有的字符以及它们的个数,如果这个动态表中包含 t 的哈希表中的所有字符,并且对应的个数都不小于 t 的哈希表中各个字符的个数,那么当前的窗口是「可行」的。

2025-06-29 17:50:42 352

原创 LeetCode Hot 100 合并区间

区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。

2025-06-29 17:49:02 155 1

原创 LeetCode Hot 100 最大子数组和

请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。连续子数组 [4,-1,2,1] 的和最大,为 6。的解法,尝试使用更为精妙的。是数组中的一个连续部分。如果你已经实现复杂度为。

2025-06-29 17:47:53 176

原创 Unity实现无限滚动列表

本文介绍了游戏开发中无限滚动列表的实现方法。该技术通过对象池回收视图外的UI元素,重复利用以提高性能。关键点包括:判断回收超出显示范围的元素,并根据视图位置计算元素位置重新放置。实现流程分为初始化列表大小、Update函数更新元素位置、检查显示范围并调整UI元素。数据结构采用双向链表存储当前视口元素,方便头尾操作。视图范围以左上角为基准,通过坐标比对确定元素位置。文章还提供了代码示例,展示如何继承抽象类实现数据与UI元素的绑定,支持动态刷新和视图更新。

2025-06-28 16:03:52 1218 1

原创 LeetCode Hot 100 找到字符串中所有字母异位词

因为字符串 p 的异位词的长度一定与字符串 p 的长度相同,所以我们可以在字符串 s 中构造一个长度为与字符串 p 的长度相同的滑动窗口,并在滑动中维护窗口中每种字母的数量;当窗口中每种字母的数量与字符串 p 中每种字母的数量相同时,则说明当前窗口为字符串 p 的异位词。当字符串 s 的长度小于字符串 p 的长度时,字符串 s 中一定不存在字符串 p 的异位词。在算法的实现中,我们可以使用数组来存储字符串 p 和滑动窗口中每种字母的数量。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。

2025-06-28 12:52:26 271

原创 LeetCode Hot 100 滑动窗口最大值

的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。

2025-06-28 12:51:09 94

原创 LeetCode Hot 100 盛最多水的容器

由于左指针对应的数字较小,我们移动左指针,并且可以发现,在这之后左指针对应的数字总是较小,因此我们会一直移动左指针,直到两个指针重合。在这期间,对应的可以容纳的水量为:min(2,8)∗3=6,min(5,8)∗2=10,min(4,8)∗1=4。如果我们移动数字较大的那个指针,那么前者「两个指针指向的数字中较小值」不会增加,后者「指针之间的距离」会减小,那么这个乘积会减小。因此,我们移动数字较大的那个指针是不合理的。在我们移动指针的过程中,计算到的最多可以容纳的数量为 49,即为最终的答案。

2025-06-27 12:00:04 271

原创 LeetCode Hot 100 三数之和

也就是说,我们枚举的三元组 (a,b,c) 满足 a≤b≤c,保证了只有 (a,b,c) 这个顺序会被枚举到,而 (b,a,c)、(c,b,a) 等等这些不会,这样就减少了重复。我们使用三重循环枚举到的第一个三元组为 (0,1,2),如果第三重循环继续枚举下一个元素,那么仍然是三元组 (0,1,2),产生了重复。题目中要求找到所有「不重复」且和为 0 的三元组,这个「不重复」的要求使得我们无法简单地使用三重循环枚举所有的三元组。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。

2025-06-27 11:58:03 444

原创 LeetCode Hot 100复习 移动零

移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。

2025-06-27 11:56:04 145

原创 LeetCode Hot100 复习 最长连续序列

找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。最长数字连续序列是 [1, 2, 3, 4]。请你设计并实现时间复杂度为。给定一个未排序的整数数组。

2025-06-25 16:18:34 138

原创 Leetcode Hot100 复习 字母异位词分组

由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

2025-06-25 16:17:00 175

原创 Leecode Hot100 复习 两数之和

这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1)。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。整数,并返回它们的数组下标。你可以想出一个时间复杂度小于。你可以按任意顺序返回答案。,请你在该数组中找出。

2025-06-25 16:11:50 334

原创 Lua复习之何为闭包

闭包的主要作用有两个,一是简洁,不需要在不使用时生成对象,也不需要函数名;二是捕获外部变量形成不同的调用环境闭包(函数)编译时会生成原型(prototype),包含参数、调试信息、虚拟机指令等一系列该闭包的源信息,其中在递归编辑内层函数时,会为内层函数生成指令,同时为该内层函数需要的所有upvalue创建表,以便之后调用时进行upvalue值搜索在lua中,会生成一个全局栈,所有的upvalue都会指向该栈中的值,若对应的参数离开的作用域,栈中的值也会被释放,upvalue的指针会指向自己,等待被gc。

2025-06-22 10:16:18 450

原创 Lua基础复习之Lua元表

setmetatable(obj, self) -- 设置元表,使对象继承类的方法。__newindex:当表中没有所需要访问的数据时,在__newindex中访问该方法;__unm(a) -- 对应 - (取负)运算。__sub(a, b) -- 对应 - 运算。__add(a, b) -- 对应 + 运算。__mul(a, b) -- 对应 * 运算。__div(a, b) -- 对应 / 运算。

2025-06-17 22:14:54 244

原创 如何理解虚拟内存

每个进程创建加载的时候,会被分配一个大小为4G的连续的虚拟地址空间,虚拟的意思就是,其实这个地址空间时不存在的,仅仅是每个进程“认为”自己拥有4G的内存,而实际上,它用了多少空间,操作系统就在磁盘上划出多少空间给它,等到进程真正运行的时候,需要某些数据并且数据不在物理内存中,才会触发缺页异常,进行数据拷贝。这个页表又是何方神圣?1CPU想访问某个虚拟内存地址,找到进程对应的页表中的条目,判断有效位, 如果有效位为1,说明在页表条目中的物理内存地址不为空,根据物理内存地址,访问物理内存中的内容,返回。

2025-06-15 09:38:55 634

原创 Unity 服务器交互开发指南

适用场景:MMORPG、FPS等需要高性能实时交互的游戏推荐库。

2025-06-11 21:59:47 404

原创 Unity与Excel表格交互热更方案

在Unity中实现与Excel表格的交互并支持热更是许多游戏开发中的常见需求。

2025-06-04 22:38:36 684

原创 IL2CPP 技术深度解析

IL2CPP 是 Unity 开发的高性能脚本后端,它将 .NET 的中间语言 (IL) 转换为 C++ 代码,再编译为原生平台二进制文件。以下是 IL2CPP 的全面技术剖析。

2025-05-05 22:46:21 1290

原创 Unity 一篇文章让你理解Mono

Mono 是一个开源的 .NET 兼容框架,由 Xamarin(现属微软)创建并维护。作为 Unity 长期使用的脚本后端,Mono 在游戏开发领域扮演着重要角色。以下从架构设计到实际应用的全面解析。

2025-05-04 15:21:41 687

原创 HybridCLR 详解:Unity 全平台原生 C# 热更新方案

HybridCLR(原 Huatuo)是 Unity 平台革命性的热更新解决方案,它通过扩展 Unity 的 IL2CPP 运行时,实现了基于原生 C# 的完整热更新能力。下面从原理到实践全面解析这一技术。

2025-05-03 08:37:46 1937

原创 Unity 与 Lua 交互详解

Unity 与 Lua 的交互是热更新实现的核心技术,下面我将从底层原理到实际应用全面解析交互机制。

2025-05-02 09:47:38 1365

原创 Unity 几种主流的热更新方式

选择合适的热更新方案需要综合考虑项目规模、目标平台、团队技术栈和长期维护成本等因素。:在 Unity Editor 中设置资源的 AssetBundle 属性。大型项目:HybridCLR + AssetBundle。:AssetBundle 或 Addressables。├─ AssetBundle 加载。运行时动态加载更新的 AssetBundle。:运行时加载更新后的 AssetBundle。需要简化 AssetBundle 管理的项目。基于 AssetBundle 的增强方案。

2025-05-01 15:23:34 2234

原创 Unity AssetBundle (AB) 打包详解

资源压缩包,包含序列化资源文件可以包含任意 Unity 支持的资源类型支持按需加载和卸载是 Unity 热更新的基础技术。

2025-04-26 16:52:10 1772

原创 Unity Shader 屏幕颜色混淆干扰(杂色)

【代码】Unity Shader 屏幕颜色混淆干扰(杂色)

2025-04-15 08:53:59 422

原创 Unity 基于navMesh的怪物追踪惯性系统

Unity 基于navMesh的怪物追踪惯性系统

2025-04-13 22:02:47 575

原创 Unity中基于2.5D的碰撞系统

混合使用2D物理和自定义Z轴检测:利用Unity的2D物理系统处理主要碰撞,再通过Z轴位置筛选有效碰撞分层处理:将游戏世界分为多个逻辑层,每层有独立的碰撞规则性能优化:使用空间分区、碰撞缓存等技术减少计算量特殊场景处理:针对斜坡、平台边缘等特殊地形实现专门的检测逻辑动态调整:根据角色位置动态调整碰撞参数,实现更自然的交互这种方案在保持良好性能的同时,能够提供足够精确的碰撞检测,满足大多数2.5D游戏的需求。

2025-04-09 22:28:54 605

原创 在Unity中实现《幽灵行者》风格的跑酷动作

复刻幽灵行者跑酷动作

2025-04-07 09:17:02 590

原创 Unity DoTween笔记

DOTween 的强大之处在于它的简洁性和灵活性,几乎可以为 Unity 中的任何属性创建动画效果。通过组合基本动画和序列,可以创建出复杂的动画效果而无需编写大量代码。在对象销毁时,相关的 Tween 会自动杀灭。

2025-04-06 11:04:52 353

Unity 商业UI框架

Unity 商业UI框架 学习自用

2025-06-24

空空如也

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

TA关注的人

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