Unity 粒子特效遮罩(ParticleMask)

这篇具有很好参考价值的文章主要介绍了Unity 粒子特效遮罩(ParticleMask)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.需求:

游戏中粒子特效能实现非常好的效果,但是由于粒子特效是独立的系统,Unity自带的Mask普通的遮罩,遮不住粒子特效。

2.实现原理:

通过shader把超出范围的粒子纹理(Texture),改成透明颜色,以实现遮住粒子特效的功能。

3.关键Shader代码

fixed4 frag (v2f i) : SV_Target
			{
				#ifdef SOFTPARTICLES_ON
				float sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)));
				float partZ = i.projPos.z;
				float fade = saturate (_InvFade * (sceneZ-partZ));
				i.color.a *= fade;
				#endif
				
				fixed4 col = 2.0f * i.color * _TintColor * tex2D(_MainTex, i.texcoord);

				col.a *= (i.vpos.x >= _MinX);
				col.a *= (i.vpos.x <= _MaxX);
				col.a *= (i.vpos.y >= _MinY);
				col.a *= (i.vpos.y <= _MaxY);
				col.rgb *= col.a;

				UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); // fog towards black due to our blend mode
				return col;
			}

4.效果演示:

unity 粒子mask,unity,粒子特效遮罩,遮罩,特效遮罩

5.接口易用性:

在需要遮住粒子特效的GameObject上面挂上MaskParticle脚本即可。

设置遮罩范围。

MaskParticle.SetMaskRectTr(RectTransform rect)

设置遮罩跟随设置的范围。

MaskParticle.SetMaskUpdate(RectTransform rect)

6.环境:

Unity3D 2020.3.48

7.GitHub地址:https://github.com/MyTestProjectYour/Unity3d-ParticleMask/tree/main

记得给个星星哟。文章来源地址https://www.toymoban.com/news/detail-740619.html

到了这里,关于Unity 粒子特效遮罩(ParticleMask)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity实战100例】用户头像圆形遮罩使用Shader不用Mask组件

    目录 一.创建材质 二.创建Shader文件编写Shader代码 三.Image材质设置 源码:https://download.csdn.net/download/qq_37310110/88196529 前言:我们在使用Unity的自带组件Mask的时候会出现毛边现象很难处理掉,这里我们使用着色

    2024年02月19日
    浏览(50)
  • Unity 问题 之 UGUI 的 Mask 真机打包的遮罩效果失效问题的简单处理

    Unity 问题整理,自己整理的一些游戏开发遇到的问题做简单整理,方便游戏开发。 本节介绍,在使用 cardboard 做 XR 开发中,在使用 Mask  遮罩的时候,编辑器下 Mask 的 遮罩效果正常,但是运行到真机上,Mask 的遮罩效果却失效了,这里简单说明,如果你有更好的方法,欢迎留

    2024年02月15日
    浏览(51)
  • 16. unity粒子特效---旋转 + 花瓣飞舞案例

    1. 旋转模块(Rotation over Lifetime) 在主模块中也可以设置粒子的旋转角度,通过参数 Start Rotation ,不过这个参数设置的是粒子刚生成时的角度,后面不会发生变化。 使用旋转模块可以通过参数 Angular Velocity 进行设置,这个参数设置的是粒子 每秒钟的角速度 ,启动后会一直处

    2024年02月05日
    浏览(110)
  • 14. unity粒子特效--速度、粒子环绕、力(重力、阻力、风力等)、噪音

    1. 渐变速度(Velocity over Time) 可以分别指定x,y,z三个方向的速度,最终的速度是三个方向的速度合成,点击右侧的下拉三角,也可以使用曲线进行速度的控制调节,如下图所示: 2. 粒子环绕 粒子的环绕就是让粒子绕着某一个轴进行转动,实现这个效果可以使用一个圆形发射

    2024年02月04日
    浏览(42)
  • 【实现100个unity特效之7】unity 3d实现各种粒子效果

    直接调整为【Stretched Billboard拉伸/延伸渲染】 控制雨的大小 创建个材质 材质设置 挂载材质 设置延申效果 第一个叫做Speed Scale:通过比较每个粒子的速度,来去决定每个粒子拉伸/延伸的长度 而Length Scale:通过粒子的宽度,来决定粒子的长度 3d粒子大小随机化 颜色也可以设置随

    2024年01月19日
    浏览(50)
  • Unity教程||Unity添加中文字体||Unity知识记录--制作UI粒子特效

    ## 1、拷贝字体文件 拷贝C:WindowsFonts文件夹下,华文细黑常规文件到项目中   ## 2、下载中文字库 链接: https://pan.baidu.com/s/1KW31KB5vEImZHUWvQ9PLEQ 提取码: bgug  3、添加字体字库 选择Window-TextMeshPro-Font Asset Creator   进入Font Asset Creator a、Source Font File 选择字体文件 b、Atlas Resolution 都

    2024年02月09日
    浏览(72)
  • 13. unity粒子特效--发射模块、各种发射器形状、粒子渐变(颜色/大小)

    1. 发射模块(Emission) 匀速发射 : Rate over Time :每秒钟发射的粒子数 Rate over Distance :每移动一米发射的粒子个数 两者可指定其一:若仅指定 Rate over Time ,则粒子根据时间的变化进行发射,若仅指定 Rate over Distance ,则粒子系统每词移动时才发射,不移动不发射 爆发式发射

    2024年02月15日
    浏览(47)
  • Unity3D粒子系统之制作火焰特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D粒子系统之基础属性介绍 先上预览图吧 用自己熟悉的绘画工具画一张类似这样的图片(相似即可,白灰色部分边缘不规则),注意一定要黑底。 将画好的

    2024年02月02日
    浏览(44)
  • Unity3D粒子系统之制作烟雾特效

    本文将会介绍如何使用Unity内的粒子系统制作烟雾效果。 如果想了解Unity粒子系统中的基础属性,可以看这篇博客:Unity3D 粒子系统之基础属性介绍 先附上预览图: 材质贴图 首先我们需要一张烟雾材质用的材质贴图,我是自己画的,可以参考下图自己画一张或者去网上找素材

    2024年02月02日
    浏览(52)
  • 17.unity粒子特效--Renderer模块、灯光模块、粒子系统组合、二级发射器、粒子间碰撞、粒子拖尾

    1. 粒子朝向(Stretched Billboard的使用) 一般创建的粒子系统,在 Renderer 模块里默认选择的 Render Mode 为 Billboard ,但是此模式下粒子的朝向总是向上的,有时希望粒子贴图头部的方向和粒子刚产生时的发射方向保持一致,此时可以使用拉伸广告牌 Stretched Billboard 模式,并将其拉

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包