Unity中物体的遮挡和显隐效果

本文探讨了在Unity中实现3D物体A遮挡物体B的效果,通过调整Shader的Queue属性实现绘制顺序。A物体使用'Custom/A' Shader,设置Queue为AlphaTest,B物体使用'Custom/B' Shader,同样设置Queue为AlphaTest。当B物体的Queue值不当时,会出现显示异常或失去遮挡效果。详细分析了AlphaTest在Shader中的作用和可能导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    现在有个3D物体A和一群3D物体B,A后方的B会有显隐效果,方法之前我有篇文章

已经写了,先画A,再画B,顺序是由subshader中Tags里的Queue决定,这里当A和

B的Queue相同时绘制顺序不知道怎么决定的。。我的效果是A是先于B绘制的,A上的

shader为:


Shader "Custom/A" {
    Properties {
    _Color ("Main Color"Color) = (1,1,1,1)
    _MainTex ("Base (RGBTrans (A)"2D) = "white" {}
}

SubShader {
    //Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
    //Tags{"Queue"="Geometry"}// good one
    Tags{ "Queue"="AlphaTest"}
    LOD 200

CGPROGRAM
#pragma surface surf Lambert alpha

sampler2D _MainTex;
fixed4 _Color;

struct Input {
    float2 uv_MainTex;
};

void surf (Input INinout SurfaceOutput o) {
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值