カスタムシェーダを適応してUnityエディタ上ではちゃんと表示されるけど、実機上ではピンクになってしまう。
エディタ上でもピンクになるならシェーダのエラーの可能性が高いけど、実機だけピンク状態は初めてだったので覚書。
原因はスクリプトでシェーダをスクリプトで適応させているところだった。
1 |
GetComponent<MeshRenderer>().material.shader = Shader.Find( "Custom/CustomShader1" ); |
実機だと、ここの Shader.Find で見つけられていなかった。
リファレンスを見るとそのまま答えが書いてあった。
つまりパッケージングされてないものは参照できない。
どこかのオブジェクトで使用するか、Edit > ProjectSettings > Graphics から Always Included Shaders に追加するか、Resourcesに入れるかすれば解決です。
私はなんとなく通っぽいという理由で Always Included Shaders に追加して実機動作を確認しました。
こういう実機のみの不具合は、エラー箇所さえわかればリファレンス見るだけで解決できることが多い気がする。
実機でだけ真っ黒になる場合はこっちかも