NGUI 粒子特效裁剪

方法很简单就是给特效用的shader中传入一个裁剪区域,然后在shader中做判断是否在裁剪空间内,要是出了就把颜色设为透明.
废话不多说,直接上代码:


Shader "AngryBots/FX/AdditiveClip" {
	Properties {
		_MainTex ("Base", 2D) = "white" {}
		_TintColor ("TintColor", Color) = (1.0, 1.0, 1.0, 1.0)
		
		//新增 记录裁剪框的四个边界的值
		_Area ("Area", Vector) = (0,0,1,1)
		//----end---
	}
	
	CGINCLUDE

		#include "UnityCG.cginc"
		sampler2D _MainTex;
		fixed4 _TintColor;
		
		half4 _MainTex_ST;
		//新增,对应上面的_Area
		float4 _Area;
		//----end----
						
		struct v2f {
			half4 pos : SV_POSITION;
			half2 uv : TEXCOORD0;
			
			//新增,记录顶点的世界坐标
			float2 worldPos : TEXCOORD1;
			//----end----
		};

		v2f vert(appdata_full v) {
			v2f o;
			
			o.pos = mul (UNITY_MATRIX_MVP, v.vertex);	
			o.uv.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
			
			//新增,计算顶点的世界坐标
			o.worldPos = mul(_Object2World, v.vertex).xy;
			//----end----
									
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值