Unity NGUI SoftPanel 裁剪粒子或者模型

本文介绍了如何使用Unity自定义Shader来实现SoftPanel裁剪效果,适用于粒子系统和3D模型。关键在于理解Unity的裁剪原理,并通过Shader中的视图坐标判断进行裁剪。同时提供了一个简单的脚本来传递裁剪区域,帮助粒子系统和模型适应软裁剪面板。
摘要由CSDN通过智能技术生成

NGUI本身的裁剪有例子,在自带的Shader中的Transparent Colored 1

v2f vert(appdata_t v)
{
 v2f o;
 o.vertex = UnityObjectToClipPos(v.vertex);
 o.color = v.color;
 o.texcoord = v.texcoord;

 //就是这句 传进来相对于drawcall里设置的自身坐标 NGUI通过处理 近似于屏幕坐标 然后通过裁剪区域运算
 o.worldPos = v.vertex.xy * _ClipRange0.zw + _ClipRange0.xy;
 return o;
}

但是粒子或者模型不在NGUI的drawcall中,因此无法通过复制他的逻辑实现裁剪,可以根据这个思路写一个,其实原理就是给shader设置一个裁剪区域。

//这是示例shader 重点其实就注释的4个地方 使用Unity版本5.6.5f1

Shader "Effect/Effect_additive_LV1" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _tintColor("Tint Color",Color) = (0.5,0.5,0.5,1)
    }
    SubShader {
        Tags { "Queue&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值