はじめまして

はじめまして。
My noteというブログを作ってみました。

さくらのブログで運用していた「Unityお勉強中のメモ・ブログ」とロリポップのレンタルサーバーで運用していた「ロリポの勉強ノート」という2つのサイトを統合して、パソコン関連全般を扱うブログという形で運用していこうかなと思っています。

基本的に自分のための覚え書きメモという形になりますので、汎用的でない内容も多くなりますが、何かの参考になればと思います。

移行元の旧サイト

Unityお勉強中のメモ・ブログ
http://unity3d.sblo.jp/

ロリポの勉強ノート
http://vps.lolipop.jp/

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

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