2021-02-23 _改变shader原来就有的情况下重新挂载

在Unity2019工程中,当从PC平台切换到Android平台时,发现游戏画面变为全粉色。这个问题可以通过在渲染完成后重新挂载Shader来解决。具体做法是遍历所有子物体的渲染器,找到对应的Shader并应用。这个修复方法涉及Unity的跨平台渲染差异及Shader管理。
摘要由CSDN通过智能技术生成

unity2019 工程于pc平台运行时 显示一切正常 , 但是切换成android平台之后 画面完全呈现粉色 , 修改方式: 在渲染完成后 重新挂载shader 等

  public static bool TryChangeShader(object o)
    {
        if (o == null || o.Equals("")) return false;// yield break;
        GameObject go = null;
        try
        {
            go = (GameObject)o;
        }
        catch (Exception _e)
        {
            Debug.LogWarning("e:" + _e);
        }
        if (go == null) return false;

        改图片或者特效的shader
        Renderer[] mas = go.GetComponentsInChildren<Renderer>();
        foreach (Renderer ma in mas)
        {
            Shader _s = Shader.Find( ma.sharedMaterial.shader.name);
            ma.sharedMaterial.shader = _s;
            continue;
        }
          return true;// yield break;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值