随笔分类 - Unity特效实现
摘要:文章目录 1.前言 2.抓取屏幕 2.1 Unity C#接口 2.2 CommandBuffer 2.3 GrabPass 3.获取屏幕坐标 3.1 ComputeScreenPos方法 3.2 VPOS语义 3.3 SV_POSITION 语义 3.4 ComputeGrabScreenPos
阅读全文
摘要:1.需求 1.需求 在一层特殊纹理基础上蒙皮另一张纹理。只要采用像素相乘既可以实现。 在一层特殊纹理基础上蒙皮另一张纹理。只要采用像素相乘既可以实现。 2.实现 2.实现 using System.Collections; using System.Collections.Generic; usin
阅读全文
摘要:需求:需要实时截出不同背景的图片(要求背景颜色对场景有反射效果),但是场景中用到PostProcessing等后处理,还有影子、倒影等效果,很难单纯通过程序来达到效果。 方法:通过三层相机分别来渲染模型影子、倒影以及地面与模型,背景为白色,通过颜色相乘来换成其他背景。 (一)场景中分别新四个quad
阅读全文
摘要:几个有用的Unity 内置shader: (一)Standard RenderingMode:Opaque为实体渲染,更改Color的透明通道不会有影响;Cutout会把图片的透明通道显示出来,非严格意义上讲与Opaque想反;Fade模式下更改透明通道会有半透明效果,同时反光等效果也会跟随透明通道
阅读全文
摘要:(一)新建Plane作为镜面 新建一个材质,并添加给Plane,材质为标准材质,并调节Metallic和Smoothness属性,如下图所示,这两个参数并非要如图所示数值,根据不同的地面颜色调节。 (二)放置模型 将模型放置在Plane上,并给模型设置层,如Reflection。 (三)新建Refl
阅读全文
摘要:通过shader实现万花筒效果,shader放在文末 由右图到左图,需要去掉背景,只留车的图,并且要从正上方视角看下去的图片才可以产生左侧的效果。 shader参数: 画布比例:显示图片image的比例 图片比例:texture2d图片的比例 行数:是指再画布上显示多少行的万花筒图片 列数:是指再画
阅读全文
摘要:需求,需要三维模型逐渐透明化消失,如果模型是一个整体,那通过更改材质为RenderingMode为Transparent后调节颜色通道即可,如下图所示。但是如果模型有多个部分组成,则显示会有问题(可能是目前所有三维软件的共性,即均为半透明效果时,无法定义遮挡,瞎猜的),但是模型往往由很多部分组成,所
阅读全文
摘要:使用HighlightingSystem插件可以实实现UI或者三维物体边缘高亮,并且可以用于移动端,ios亲测 半透明则可以通过更改MeshRender组件的material的color的通道值来实现,不过材质必须为diffuse类型的才可以
阅读全文
摘要:最近有需求做一个排行榜,需要根据某一参数大小插入到排行榜中,但是要有一个插入后后续榜单元素下移的效果。代码如下: 排行榜单行时插入(或者原来排名升高)效果 排行榜两行显示时插入(或者原来排名升高)效果 PS: 插入的元素不要实例化出来,直接把原有的元素更改属性,然后移动上去性能会更好
阅读全文
摘要:文字色彩渐变是指的文字本身的颜色,不是背景渐变。要实现此效果可以采用Mask组件,本文先从介绍mask说起 1)Mask介绍 mask组件实现的作用是,mask组件所在游戏物体下的子游戏物体在mask覆盖的范围内渲染。即如果mask组件所在的游戏物物体(简称mask游戏物体)有Image组件,且此游
阅读全文
摘要:要实现一个下载时刷新的按钮,由于跟直接转圈的不太一样,所以想了很多方法,但都觉得不是很好,突然灵光乍现,想起来可以像做游戏技能CD那样的方式做: 把Sprite推按属性改成Filled,然后修改fillAmount属性即可(怪不得老是觉得有更好的方法) 如果要实现左右刷新或者上下刷新只需更改Fill
阅读全文
摘要:思路:通过摄像机单独渲染需要制作影子的模型,并渲染到一个Plane上 1)给模型A创建层model,并把model层设置给A 2)新建相机,设置clearFlag为solidcolor,cullingmask设置为model,新建renderTexture并设置给相机的目标texture 3)新建P
阅读全文
摘要:由于项目需求,需要在text上实现鼠标的cursor,并且随着点击位置cursor移动。实现方法: 1)新建一个光标的prefab(简单为之,直接在image中添加一个竖线spirte),增加脚本控制闪烁。 脚本如下: 2)获取text每个字符所在的位置(下代码中width即为每个字符对应的长度,c
阅读全文
摘要:对于不同天气下天空盒的实现。 天空盒时通过天空盒材质更改实现的,新建材质,选择shader/skybox/6sided,然后添加六个天空盒贴图就可以实现天空盒,如果想实现天气变化则需要至少两套贴图,并需要实现渐变。此时需要新建着色器shader。Create/shader/unityshader然后
阅读全文