URP 与 Built-in 全屏描边方案:从代码层看渲染管线差异

URP 与 Built-in 全屏描边方案:从代码层看渲染管线差异
开场上周收到一个需求:在角色被锁定时,屏幕里所有可交互物体都要加一圈红色描边。听起来很简单,不就是后处理嘛。我下意识打开Project Settings,看到 Graphics 还停留在 Built-in,于是打算用CommandBuffer挂一个Blit全屏走一遍。但项目最近刚迁到 URP,我顺手切到 URP 项目里一看,傻眼了——OnRenderImage不被回调了,Camera.AddCommandBuffer加进去也没效果。原本 5 分钟能搞定的事,折腾了一下午。这才意识到:同样的需求,在两条管线里写出来的代码完全是两回事。本文就以“全屏描边”这个最小需求为例,用两段真实可跑的代码,把 URP 与 Built-in 在“后处理怎么挂”这件事上的差异讲透——不只是写法不同,更是设计哲学不同。前置知识:了解CommandBuffer、RenderTexture、Blit的基本概念即可。示例中的 URP 代码基于 URP 10~13(Unity 2020.3~2022.1)的 API 写法,URP 14+(Unity 2022.2 及之后)的差异会在第三节单独说明。一、Built-in:CommandBuffer + CameraEvent在 Built-in 管线里,后处理最常用的两条路是:给

最新新闻

日新闻

周新闻

月新闻