这一组文章最初是想解决一个很实际的问题:
很多 Unity 程序员知道 Transform、知道 localPosition、也知道 Shader 里有 MVP,但一旦项目里同时出现挂点、UI 跟随、程序化摆放、法线、相机空间这些问题,脑子里的知识点就会散掉。
所以我把这段内容整理成了一条从基础到实战的路线,不追求学院化推导,重点放在 Unity 项目里真正会遇到的落点上。
如果你最近正好在补矩阵、线性变换、坐标空间这块,可以直接按下面的顺序看。
一、这个系列适合谁
我觉得这组文章比较适合下面几类 Unity 开发者:
- 做客户端业务,但经常碰到坐标、朝向、挂点、跟随问题
- 想看懂
Matrix4x4.TRS、MultiplyPoint这些 API 到底在干什么 - 写 Shader 时总觉得 Object、World、View、Clip 这些空间名很绕
- 在做棋盘、地块、程序化摆放、技能范围这些系统时,感觉空间关系总容易出错
如果你只是临时查某个 API,也可以直接跳到后面对应的专题。
二、推荐阅读顺序
1. 先把基础概念站稳
这一段解决的是“矩阵到底是什么”以及“为什么平移、旋转、缩放能被统一处理”。
2. 再把 Unity 里的坐标空间串起来
这一段开始从纯概念切回 Unity 代码。看到这里,你基本就能把 Transform、父子层级和 TRS 这几个最常见落点串起来了。
3. 接着补图形与渲染侧的空间意识
这一段不是为了让客户端程序员转图形程序员,而是为了把很多“知道名词但没连起来”的空间概念打通。
4. 最后看最常落到业务和排查里的场景
- UI、屏幕、世界坐标来回转换:Unity 常见矩阵应用
- InverseTransformPoint、MultiplyPoint 和 Gizmos:矩阵排查技巧
- 把矩阵知识真正用进项目:动画、相机、地块和程序化摆放
这一段更偏工程实战。很多真正让人头疼的问题,不是考试题,而是“线上表现不对,但又说不清是哪层空间错了”。
三、如果你只关心某一类问题,可以这样跳读
如果你现在手里的问题比较明确,不一定非要从头顺着看。
1. 挂点、父子节点、角色朝向
优先看:
- local、world 和 parent-child:Unity Transform 背后的矩阵关系
- Matrix4x4.TRS、顺序和程序化摆放:Unity 里怎么真正用矩阵
- 把矩阵知识真正用进项目:动画、相机、地块和程序化摆放
2. UI 跟随、屏幕坐标、点击映射
优先看:
3. Shader、空间名、法线、光照异常
优先看:
4. 棋盘、地块、程序化生成、批量摆放
优先看:
- Matrix4x4.TRS、顺序和程序化摆放:Unity 里怎么真正用矩阵
- InverseTransformPoint、MultiplyPoint 和 Gizmos:矩阵排查技巧
- 把矩阵知识真正用进项目:动画、相机、地块和程序化摆放
四、这组文章我自己最想强调的,不是公式,而是“空间意识”
我现在回头看,矩阵这块最值钱的不是手推公式本身,而是你会慢慢建立一种稳定的工程判断:
- 这个值现在处于哪个空间
- 这里应该传点,还是传方向
- 这个偏移是叠加在局部空间还是世界空间
- 这个 bug 更像是资源问题、逻辑问题,还是空间转换问题
很多项目里的疑难杂症,最后都不是不会写 API,而是空间没讲清楚。
五、推荐一个更务实的学习方式
如果你是 Unity 客户端,不建议一开始就扑进长篇数学教材里。
我更推荐这套顺序:
- 先把这一组文章按需看完
- 打开一个小场景,自己用
Gizmos画几个点和方向 - 手写几次
TransformPoint、InverseTransformPoint、Matrix4x4.TRS - 再回到项目里找两个真实问题,对照空间去拆
这样学得更慢一点,但会更扎实,也更接近真正能在项目里用出来的状态。
六、最后
这一页先当作这组矩阵文章的导航入口。
后面如果我继续把这个方向往下写,大概率会补几类内容:
- 技能范围、碰撞盒、朝向判定怎么用矩阵思维统一
- 编辑器工具里如何用矩阵减少中间节点和手工摆点
- 二合、棋盘、SLG 地块这类系统里,空间抽象怎么提前设计得更稳
如果你是从具体 bug 查进来的,希望这页能帮你少绕一点路。