Shader.Findでエラーが発生してしまう場合

Unity Editor上では問題なく動作しているのに、ビルドしたゲームのShader.Findでエラーとなる場合はAlways Included Shadersを設定するとうまくいく場合があるそうです。

var s = Shader.Find("Custom/Example");
Assert.IsNotNull(s); //error

Always Included Shadersの設定

[Edit] » [Project Settings..]

を実行して、GraphicsタブのBuilt-in shader settingsAlways Included Shadersの項目に使いたいShaderを登録すると良いそうです。

リンク

Unity – Scripting API: Shader.Find
https://docs.unity3d.com/ScriptReference/Shader.Find.html

関連記事

UnityでFake Rim Lighting
UnityでFake Rim Lightingを実装したShaderです。 CG Shaders - Fake Rim Lighting - Artistic Experimentshttp://www.artisticexperiments.com/cg-shaders/cg-shaders-fake-3-point-lighting Sphereに適用してみたサンプル ...

Unityでshaderを書くときに参考になる公式リンク
Surface Shaderのサンプル集 Unity - Manual: Surface Shader exampleshttps://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html SurfaceOutput、SurfaceOutputStandardの定義と#pragma surfaceディレクティブに書けるキーワード ...

Too many texture interpolators would be used for ForwardBase pass
Unityのシェーダーで Shader error in '': Too many texture interpolators would be used for ForwardBase pass (11 out of max 10) at line xx のようなエラーが出る場合は #pragma target 4.0 を追加すると動くようになることがあるみたいです。 ...

KvantGrass
アニメーション付きのGrass Shader「KvantGrass」を試してみました。 使い方に戸惑ってしまいましたが、空のオブジェクトにGrass/GrassScrollerのコンポーネントを追加してみたらGrassが表示されました。 リンク GitHub - keijiro/KvantGrass: Animating grass shader for Unityht...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です