以前做编辑器的时候有一个生成模型特效的需求,从网上找来这个shader配合使用,找不到原博了在此记录
需要添加特效的模型设置为此shader,根据需求设置一个剔除面物体clipTrans,用SetClipPosition方法设置剔除部分。
public void SetClipPosition()
{
//剔除面位置
pos = clipTrans.position;
//计算XY平面上的法向量,用XY平面作为剔除面
normal= clipTrans.rotation * Vector3.down;
clipMaterial.SetVector("_ClipObjPos", pos);
clipMaterial.SetVector("_ClipObjNormal", normal);
}
※使用这个shader
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
Shader "Custom/Clip"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_ClipY ("剔除 Y 值", float) = 0
[Space(10)]_ClipObjPos ("遮罩位置", Vector) = ( 0, 0, 0, 1 )
_ClipObjNormal ("遮罩法线向量", Vector) = ( 0, 1, 0, 1 )
}
SubShader
{
Cull Back
Pass
{
CGPROGRAM
#pragma ve