You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity应用自定义Unlit Shader后GameObject不可见问题求助

问题排查与解决方案

针对你跟随Freya Holmer教程编写的Unlit Shader应用后物体不可见的问题,结合Unity 2022.3.63f3版本,可从以下方向排查修复:

1. 透明渲染类型的配置冲突

你的Shader设置了Tags { "RenderType"="Transparent" },但Pass中未配置混合模式。Unity会按透明物体逻辑(渲染队列3000)处理该材质,但缺乏混合设置时,深度测试会导致物体被后续渲染的内容遮挡,甚至被自身几何体剔除。

修复方案:

  • 若不需要透明效果,直接将RenderType改为Opaque:
    Tags { "RenderType"="Opaque" }
    
  • 若需支持透明,在Pass块内添加标准透明混合模式:
    Pass
    {
        Cull Off
        Blend SrcAlpha OneMinusSrcAlpha // 启用透明混合
        CGPROGRAM
        // ... 原有代码
    

2. 渲染队列与深度设置验证

  • 打开材质检查器,确认Render Queue:
    • 使用Opaque时,队列应为Geometry(2000);
    • 使用Transparent时,队列应为Transparent(3000)。
  • 若物体仍不可见,可临时在Pass中添加ZWrite On(透明物体默认关闭ZWrite)排查,但此设置可能导致透明物体间遮挡异常,仅用于测试。

3. 场景与对象基础检查

  • 确认相机的Near/Far Plane范围包含该物体,且物体处于相机视野内;
  • 检查Renderer组件是否被禁用,或材质是否正确赋值到对象上;
  • 验证模型本身是否包含有效顶点数据(避免是空模型或损坏模型)。

修改后的完整Shader示例(不透明版本)

Shader "Unlit/TestShader"
{
    Properties
    {
        _Value ("Value", Float) = 1.0
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }

        Pass
        {
            Cull Off
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"
            
            float _Value;

            struct MeshData
            {
                float4 vertex : POSITION;
            };

            struct Interpolators
            {
                float4 vertex : SV_POSITION;
            };

            Interpolators vert (MeshData v)
            {
                Interpolators o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                return o;
            }

            float4 frag (Interpolators i) : SV_Target
            {
                return float4(1, 0, 0, 1);
            }
            ENDCG
        }
    }
}

内容的提问来源于stack exchange,提问作者Caleb Hamilton-Keene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 15:33:14