vaguely

和歌山に戻りました。ふらふらと色々なものに手を出す毎日。

【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を開く

  1. まずInspector上で変更対象のMaterialを開き、Material名の上で右クリック -> Edit Shader を開きます。

f:id:mslGt:20170118073249j:plain

  1. 「Properties」から名前を探します(左側がプロパティ名です)。

f:id:mslGt:20170118073303j:plain

参考