【旧博客转移 - 2016年8月29日 12:51 】

前段时间做了一个放技能的时候,背景缓慢变黑,放完后再变回来的效果,可以很好的突出技能特效的感觉。 算是一种屏幕后期特效,这个特效说难不难,说简单也不简单 反正换做以前的我是没这么快做出来的 随着对Unity引擎跟Shader的更加了解,很快就把这个需求做完了

效果如下

Unity-奥义技能背景变黑效果-LMLPHP

实现方式

刚开始我想改变场景中物品的Shader颜色来实现,可发现场景里很多物品的材质跟Shader都各不一样,实现起来比较麻烦 后来发现了一种更好的办法,用两个相机去渲染,一个变黑相机渲染场景,一个相机渲染不需要变黑的部分。把黑相机的层级调到最低 控制一个相机只渲染指定层级可以用位运算符改变Camera的cullingMask属性 camera.cullingMask &= ~(1 << layer);  //代表取消选中layer blackCamera.cullingMask |= (1 << layer);  //代表添加选中layer   然后用到材质替换渲染的方式来实现变黑相机 实现Camera的OnRenderImage方法 Unity-奥义技能背景变黑效果-LMLPHP

04-15 13:35