2020年04月17日

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
タグ:shader Debug
posted by unity-chan at 14:06 | Script

2020年04月03日

Tiling/Offset値をスクリプトから設定する方法

MaterialのTexture設定にあるTilingOffsetの値をスクリプトから設定したい場合はSetTextureScaleSetTextureOffsetを使って次のような感じでできるそうです。

Material material;

// Tiling
material.SetTextureScale("_MainTex", new Vector2(1.0f, 2.0f));

// Offset
material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.5f));

設定値を取得したい場合はGetTextureScaleGetTextureOffsetが使えるみたいです。

リンク

Unity - Scripting API: Material.SetTextureScale
https://docs.unity3d.com/ScriptReference/Material.SetTextureScale.html

Unity - Scripting API: Material.SetTextureOffset
https://docs.unity3d.com/ScriptReference/Material.SetTextureOffset.html
タグ:shader
posted by unity-chan at 17:36 | Script