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

iOS15暗黑模式切换时Unity透明灰度Shader显示异常问题

iOS 15 下自定义灰度 Unlit Shader 随暗黑模式显示异常问题

我使用了如下自定义Unlit Shader实现图片转灰度效果,同时支持透明通道处理,该Shader在iOS 15以下系统中运行完全正常。设备升级至iOS 15后,场景渲染时该Shader出现显示异常,经过多轮排查发现异常与iPhone暗黑模式开关相关:

异常效果对比:
异常效果对比

该灰度Shader被应用在红色立方体上:

  • 立方体A为开启暗黑模式的iPhone上的渲染结果,与Unity编辑器内的预期效果一致
  • 立方体B为关闭暗黑模式时同一对象的渲染结果

由于我在应用内大量使用该Shader,该问题会导致应用UI表现随用户暗黑模式偏好出现不一致,影响使用体验。我个人判断问题并非出在Shader本身,推测可能是iOS 15对带透明效果的Shader处理逻辑有变动,请问该问题是Unity与iOS 15适配的已知Bug,还是我的Shader存在遗漏配置项?

附使用的Shader代码

Shader "Unlit/NewUnlitShader"
{
    Properties
    {
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
        _EffectAmount ("Effect Amount", Range (0, 1)) = 1.0
    }

    SubShader
    {
        Tags
        {
            "Queue"="Transparent"
            "IgnoreProjector"="True"
            "RenderType"="Transparent"
        }

        LOD 200
        Blend SrcAlpha OneMinusSrcAlpha
    
        Pass
        {

        CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata_t
            {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
            };

            struct v2f
            {
                float4 vertex : SV_POSITION;
                half2 texcoord : TEXCOORD0;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;
            uniform float _EffectAmount;
            
            v2f vert (appdata_t v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                return o;
            }
            
            fixed4 frag (v2f i) : SV_Target
            {
                fixed4 c = tex2D(_MainTex, i.texcoord);
                c.rgb = lerp(c.rgb, dot(c.rgb, float3(0.3, 0.59, 0.11)), _EffectAmount);
                return c;
            }

        ENDCG
        }
    }
    Fallback "Standard"
}

【更新-已确认】该问题属于已知Bug,Unity开发团队已收到相关反馈。


内容的提问来源于stack exchange,提问作者user15199268

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:01