<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[d6d4664948的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/d6d4664948</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; d6d4664948]]></copyright><item><title><![CDATA[定点数确定性物理碰撞库]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/165488884</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/165488884</guid><author>d6d4664948</author><pubDate>Tue, 15 Sep 2026 19:18:06 +0800</pubDate><description><![CDATA[FixedPhysX 用不到 200 行核心代码类型安全 + 双分派：用抽象 +统一入口，把"圆 vs 圆 / 圆 vs 盒 / 盒 vs 盒"的 N² 组合收敛为几个具体方法，并通过"盒 vs 圆 = 圆 vs 盒取反"消除重复。算法简洁且刻意避开浮点陷阱：圆 vs 圆用平方距离早退、圆 vs 盒用"投影 + 钳制 + 最近点"，全程只有整数和固定迭代的开方/查表，没有任何运行时浮点依赖。响应分层清晰：位置修正（推穿出）与速度修正（]]></description><category></category></item><item><title><![CDATA[定点数运算库]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/163113512</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/163113512</guid><author>d6d4664948</author><pubDate>Wed, 22 Jul 2026 20:07:23 +0800</pubDate><description><![CDATA[本库是一个完全确定性的定点数数学库，专为帧同步（锁步同步）多人游戏设计。为什么要用定点数？在帧同步架构中，所有客户端必须独立计算出完全一致的结果。IEEE 754 浮点数在不同 CPU 架构、不同编译器优化级别下，舍入行为可能不同（如 x87 vs SSE 指令集），导致计算结果出现微小偏差，进而破坏帧同步的一致性。定点数以整数为基础进行运算，在所有平台上保证比特级一致。特点说明整数运算所有运算基于long（64位有符号整数），跨平台结果一致双缩放因子。]]></description><category></category></item><item><title><![CDATA[KCP帧同步网络框架]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/162068151</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/162068151</guid><author>d6d4664948</author><pubDate>Wed, 17 Jun 2026 14:20:53 +0800</pubDate><description><![CDATA[Unity MOBA 帧同步网络层：KCP（基于 UDP 的 ARQ 可靠传输）]]></description><category></category></item><item><title><![CDATA[EPA算法实现细节]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/162010972</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/162010972</guid><author>d6d4664948</author><pubDate>Mon, 15 Jun 2026 16:47:30 +0800</pubDate><description><![CDATA[EPA（Expanding Polytope Algorithm，扩展多面体算法）在 GJK 判定两凸体相交后，通过反复扩展 Minkowski 差上的多面体来逼近真实的穿透深度、接触法线和接触点。核心思想GJK 终止时给出一个包围原点的单纯形（1~4 个顶点）将该单纯形扩展为封闭多面体反复取离原点最近的面，沿其外法线取新支撑点，把多面体向外"膨胀"当新支撑点到面的距离不再显著增加时，最近面即逼近 Minkowski 差的真实表面。]]></description><category></category></item><item><title><![CDATA[GJK算法实现细节]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/161981215</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/161981215</guid><author>d6d4664948</author><pubDate>Sun, 14 Jun 2026 16:41:22 +0800</pubDate><description><![CDATA[Case条件返回值含义Case 1找到分离轴且间隙 > margin+contactDist，确定两形状不相交Case 2CloseGJK 收敛，返回两形状表面最近点/法线/距离Case 3dist ≤ eps且未退化（Contact单纯形逼近原点，两形状重叠Case 4退化（）或 32 次迭代耗尽Close或Contact无法继续收敛，用阈值判定Case 4 的接受阈值→Close；否则 →Contact。]]></description><category></category></item><item><title><![CDATA[UIFramework]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/161727922</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/161727922</guid><author>d6d4664948</author><pubDate>Fri, 05 Jun 2026 21:25:27 +0800</pubDate><description><![CDATA[本文档梳理的实现机制，以及它和当前项目业务 UI 的关系。需要先明确一点：项目里存在一套通用的，但当前业务 UI 主线大量使用的是另一套更轻的。两者思想相近，但调用链不同。新增业务 UI 时通常应优先沿用现有业务链路；只有准备统一改造 UI 管理方式时，才考虑让通用接管窗口/面板。]]></description><category></category></item><item><title><![CDATA[GJK+EPA算法]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/161727818</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/161727818</guid><author>d6d4664948</author><pubDate>Fri, 05 Jun 2026 21:15:47 +0800</pubDate><description><![CDATA[即 A 中沿方向 d 最远的点。| 问题 | 答案 ||—|—|| GJK 解决了什么 | 判断两个凸体是否相交；不相交时求最近距离 || 关键抽象 | Minkowski Difference：相交 ⇔ 原点在其中 || 计算手段 | 支撑函数按方向采样极值点，逐步构造 simplex || GJK 的核心循环 | 取 simplex 最近点 → 沿 -p 方向 support → Johnson 算法收缩判断 || EPA 解决了什么 | 已知相交，求穿透深度和碰撞法线 |]]></description><category></category></item><item><title><![CDATA[Unity协程的原理]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/155205106</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/155205106</guid><author>d6d4664948</author><pubDate>Fri, 01 May 2026 14:49:43 +0800</pubDate><description><![CDATA[而协程调度器就是依据迭代器函数返回的内容进行之后的处理，例如yield return null，当调用开启协程函数后，Unity拿到了这个协程的迭代器内部就会等待一帧执行yield return null下一步的逻辑。1.协程函数本体：就是一个能中间暂停的返回函数，如果不通过开启协程方法执行协程，Unity的协程调度器是不会帮我们管理协程函数的，但是我们可以手动执行。2.协程调度器：是unity内部实现的，会在对应时机帮我们执行协程函数。Unity只实现了协程调度部分，协程本质上就是一个C#迭代器方法。]]></description><category></category></item><item><title><![CDATA[计算机图形学 — Transform]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/160664716</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/160664716</guid><author>d6d4664948</author><pubDate>Fri, 01 May 2026 14:48:36 +0800</pubDate><description><![CDATA[非均匀缩放]]></description><category></category></item><item><title><![CDATA[操作系统特征]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/155201241</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/155201241</guid><author>d6d4664948</author><pubDate>Mon, 24 Nov 2025 18:25:48 +0800</pubDate><description><![CDATA[摘要：操作系统具有四个基本特征：1）并发性，指多个程序宏观上同时运行，微观上交替执行；2）共享性，资源可被多个进程共同使用，包括互斥共享和同时共享两种方式；3）虚拟性，通过空分复用和时分复用技术将物理实体转化为多个逻辑实体；4）异步性，进程执行因资源限制而具有不可预测性。这些特征相互关联，其中并发性是最基础的特征。]]></description><category></category></item><item><title><![CDATA[用Unity复刻童年经典游戏—愤怒的小鸟]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/146391025</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/146391025</guid><author>d6d4664948</author><pubDate>Thu, 20 Nov 2025 11:01:01 +0800</pubDate><description><![CDATA[Header("地图卡片UI")]/// 初始点击时生成的关卡列表变量托拽赋值如下事先准备一个LevelListPrefab预设体用来动态创建加载每一关的的信息//记录所有类型的小鸟名字//显示小鸟数量//这里需要考虑鸟的数量为0时将遮罩盖住并且将按钮禁用//按钮的遮罩//存放所有小鸟的精灵//存放所有鸟的精灵//选择框的精灵//开始按钮的遮罩//选择框存放的小鸟字段赋值如下。]]></description><category></category></item><item><title><![CDATA[操作系统概念]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/155032792</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/155032792</guid><author>d6d4664948</author><pubDate>Wed, 19 Nov 2025 17:02:45 +0800</pubDate><description><![CDATA[操作系统是管理和控制计算机硬件资源的基础系统软件，负责合理调度工作和分配资源，为用户及其他软件提供运行环境与接口。它通过程序接口实现系统调用功能，但普通用户无法直接使用这些接口，只能通过程序代码间接调用。操作系统作为计算机系统的核心，起着承上启下的关键作用。]]></description><category></category></item><item><title><![CDATA[Unity的Transform类]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/145123530</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/145123530</guid><author>d6d4664948</author><pubDate>Mon, 13 Jan 2025 21:04:45 +0800</pubDate><description><![CDATA[从子对象中找到某个对象(可以找到非激活的对象)游戏对象的世界坐标以(0, 0, 0)为原点。6.localRotation        本地四元数。10.Translate        朝给定的方向平移。该对象的前方(本地坐标系z轴的指向)5.rotation        相对世界四元数。15.root        该游戏对象的根对象。使游戏对象Z轴朝向给定的点。绕给定的点和给定的轴旋转。本地坐标，相对父物体坐标。]]></description><category></category></item><item><title><![CDATA[Unity初识]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/144919361</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/144919361</guid><author>d6d4664948</author><pubDate>Fri, 03 Jan 2025 22:45:21 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[堆排序&基数排序&高级排序算法效率比较]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143470307</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143470307</guid><author>d6d4664948</author><pubDate>Sun, 03 Nov 2024 21:01:16 +0800</pubDate><description><![CDATA[利用大根堆的堆顶元素是所有元素中最大的性质排序的。]]></description><category></category></item><item><title><![CDATA[数据结构 ━ 堆]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143468955</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143468955</guid><author>d6d4664948</author><pubDate>Sun, 03 Nov 2024 20:09:12 +0800</pubDate><description><![CDATA[堆（heap）分为二叉堆、二项式堆、斐波那契堆，堆是非线性数据结构，相当于一维数组，有两个直接后继。堆又被称为优先队列，尽管名为优先队列，但堆并不是队列。因为队列遵循First in, First out，但是堆是按照元素的优先级取出元素。所以“堆”是实现调度器的理想数据结构。堆排序与快速排序、归并排序一样都是时间复杂度为O(N*logN)的排序方法。]]></description><category></category></item><item><title><![CDATA[排序算法 ━ 进阶篇]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143321647</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143321647</guid><author>d6d4664948</author><pubDate>Tue, 29 Oct 2024 11:44:42 +0800</pubDate><description><![CDATA[思想(递归)：选取一个基准数，把小于基准数的数放在左边，大于基准数的数放在右边，然后分别对左右的数重复该操作，直到整个序列变成有序的循环条件：L < R1.选取基准数val = arr[L]2.从R开始找第一个 < val的数，放到L的位置，L++3.从L的位置开始往后找第一个 > val的数，放到R的位置，R--4.对基准数两边的序列重复以上操作快速排序优化：1.随着快排算法执行，数据越来越趋于有序，在一定范围内，可采用插入排序代替。]]></description><category></category></item><item><title><![CDATA[排序算法 ━ 基础篇]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143310417</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143310417</guid><author>d6d4664948</author><pubDate>Mon, 28 Oct 2024 20:52:29 +0800</pubDate><description><![CDATA[插入排序的效率最好，尤其是在数据已经趋于有序的情况下，采用插入排序效率最高。一般中等数据量的排序都用希尔排序，选择合适的增量序列，效率就已经不错了，如果数据量比较大， 可以选择高级的排序算法，如快速排序。]]></description><category></category></item><item><title><![CDATA[二分搜索查找元素]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143293521</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143293521</guid><author>d6d4664948</author><pubDate>Mon, 28 Oct 2024 12:45:10 +0800</pubDate><description><![CDATA[二分查找算法（Binary Search Algorithm）是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将目标值与数组中间元素进行比较，如果目标值等于中间元素，则查找成功；如果目标值小于中间元素，则在数组的左半部分继续查找；如果目标值大于中间元素，则在数组的右半部分继续查找。通过这种“折半”的方式，每次查找都将搜索范围缩小一半，从而提高查找效率。]]></description><category></category></item><item><title><![CDATA[数据结构之队列]]></title><link>https://blog.youkuaiyun.com/d6d4664948/article/details/143259104</link><guid>https://blog.youkuaiyun.com/d6d4664948/article/details/143259104</guid><author>d6d4664948</author><pubDate>Sat, 26 Oct 2024 21:51:41 +0800</pubDate><description><![CDATA[队列是一种操作受限的线性表，队列只允许在表的一端进行插入，在表的另一端进行删除。可进行插入的一段称为队尾，可进行删除的一端称为队头。队列的主要特点就是先进先出。依照存储结构可分为：顺序队和链式队。]]></description><category></category></item></channel></rss>