【Unity】ScriptからMaterialにTextureを設定する
はじめに
UnityのScript(C#)からMaterialにNormalmapなどのTextureを設定する方法をメモっておきます。
MaterialにTextureをセットする
例えばMaterialにNormalmapのTextureをセットするには下記を実行します。
public Texture NormalmapTexture; public Material TargetMaterial; private void Start(){ TargetMaterial.SetTexture("_BumpMap", NormalmapTexture); }
「SetTexture」の第一引数にプロパティ名を、第二引数に設定するTextureを指定します。
他にもDiffuse(オブジェクトのベースカラー)を設定したい場合は「MainTex」、Specularなら「SpecGlossMap」(Materialの種類を「Standard(Specular setup)」などに変更する必要があります)で設定できます。
※Diffuseについては「Material.mainTexture」でも設定できます。
さて、このプロパティ名は何を参照すればよいでしょうか。
ShaderのEditorを開く
- まずInspector上で変更対象のMaterialを開き、Material名の上で右クリック -> Edit Shader を開きます。
- 「Properties」から名前を探します(左側がプロパティ名です)。