Unity：Material（Standard Shader）のスクリプト設定を全網羅！

# はじめに

*こんにちは、のんびりエンジニアのたっつーです。*
*[Unity：Material（Standard Shader）のスクリプト設定を全網羅！](https://www.fast-system.jp/unity%ef%bc%9amaterial%ef%bc%88standard-shader%ef%bc%89%e3%81%ae%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88%e8%a8%ad%e5%ae%9a%e3%82%92%e5%85%a8%e7%b6%b2%e7%be%85%ef%bc%81/) で書いたのですがQiitaでも共有したいと思います。*

# ソースコード

```C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class materialTest : MonoBehaviour
{
    public Texture texture;

    void Start ()

    {
        SetMaterial();
    }

    void SetMaterial ()
    {
        var material = this.GetComponent<Renderer>().material;

        /////////////////////////////////////////////////////
        // Main Maps
        /////////////////////////////////////////////////////

        // Albedo
        material.mainTexture = texture;
        material.color = Color.red;
        // 以下と同等
        // material.SetTexture("_MainTex", texture);
        // material.SetColor("_Color", Color.red);

        // Metallic
        material.SetTexture("_MetallicGlossMap", texture);
        material.SetFloat("_Metallic", 1.0f);

        // Smoothness
        //   -> Albedo Alpha
        material.SetInt("_SmoothnessTextureChannel", 1);
        material.SetFloat("_GlossMapScale", 0.93f);

        // Smoothness
        //   -> Metallic Alpha
        material.SetInt("_SmoothnessTextureChannel", 0);
        material.SetFloat("_Glossiness", 0.9f);

        // Normal Map
        material.SetTexture("_BumpMap", texture);
        material.SetFloat("_BumpScale", 1.4f);

        // Height Map
        material.SetTexture("_ParallaxMap", texture);
        material.SetFloat("_Parallax", 1.5f);

        // Occlusion
        material.SetTexture("_OcclusionMap", texture);
        material.SetFloat("_OcclusionStrength", 1.6f);

        // Ditail Mask
        material.SetTexture("_DetailMask", texture);

        // Emission
        // インスペクターでは無効に見えるが効いている
        material.EnableKeyword("_EMISSION");
        material.SetColor("_EmissionColor", Color.green);
        material.SetTexture("_EmissionMap", texture);

        // Tiling
        material.mainTextureScale = new Vector2(2, 2);
        // 以下と同等
        // material.SetTextureScale("_MainTex", new Vector2(2, 2));

        // Offset
        material.mainTextureOffset = new Vector2(3, 3);
        // 以下と同等
        // material.SetTextureOffset("_MainTex", new Vector2(3, 3));

        /////////////////////////////////////////////////////
        // Secondary Maps
        /////////////////////////////////////////////////////

        // Detail Albedo x
        material.SetTexture("_DetailAlbedoMap", texture);

        // Normal Map
        material.SetTexture("_DetailNormalMap", texture);
        material.SetFloat("_DetailNormalMapScale", 1.2f);

        // Tiling
        material.SetTextureScale("_DetailAlbedoMap", new Vector2(4, 4));

        // Offset
        material.SetTextureOffset("_DetailAlbedoMap", new Vector2(5, 5));

        // UVSet
        material.SetFloat("_UVSec", 0); // 0:UV0, 1:UV1

        /////////////////////////////////////////////////////
        // Forward Rendering Options
        /////////////////////////////////////////////////////

        // Specular Highlights
        material.SetFloat("_SpecularHighlights", 0); // 0:OFF, 1:ON

        // Reflections
        material.SetFloat("_GlossyReflections", 0); // 0:OFF, 1:ON

        /////////////////////////////////////////////////////
        // Advanced Options
        /////////////////////////////////////////////////////

        //   Enable GPUI Instancing
        material.enableInstancing = true;

        //   Double Sided Global
        material.doubleSidedGI = true;
    }
}
```

# 実行結果

![WS000002-4.jpg](https://qiita-image-store.s3.amazonaws.com/0/227880/0178c9da-ec27-80f7-31f8-386a2fe12049.jpeg)

![title-3.jpg](https://qiita-image-store.s3.amazonaws.com/0/227880/796a21e6-72a4-e633-7db3-414f0d031481.jpeg)

# 終わりに

*よければ ブログ「[初心者向けUnity情報サイト](https://www.fast-system.jp/)」の方にも色々記載しているのでぜひご参照いただければと思います。*