2016年8月21日日曜日

[Unity]AseetBundleで読み込んだ際に自作シェーダーが読み込まれない

いくつか他サイトでも紹介されてるけど、いきなり世界が紫色になってビビる。
開始後にシェーダーを再設定すればOK。AseetBundle使うとシェーダーの参照が壊れるとかなんとか。

        foreach (var uchar in UCharForReload)
        {
            Renderer[] mats = uchar.GetComponentsInChildren<Renderer>();
            foreach (var MaterialNow in mats)
            {
                foreach (var m in MaterialNow.materials)
                {
                    m.shader = Shader.Find(m.shader.name);
                }
            }
        }

で、これでOKかと思いきや、Android環境だとうまく動かんかった。
Always Include Shadersで設定すれば今くいくかも?また今度試してみよう
⇒設定したらOKでした