static void ApplyBlendMode(Material material, ブレンドモード mode)
    {
        switch (mode)
        {
        case ブレンドモード.透明:
            material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Geometry;
            material.SetOverrideTag("RenderType", "Opaque");
            material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
            material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
            material.SetInt("_ZWrite", 1);
            material.DisableKeyword("_ALPHATEST_ON");    // #ifdef _ALPHATEST_ON の切り替え
            break;

        case ブレンドモード.カットオフ:
            material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest;
            material.SetOverrideTag("RenderType", "TransparentCutout");
            material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
            material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
            material.SetInt("_ZWrite", 1);
            material.EnableKeyword("_ALPHATEST_ON");    // αテストする
            break;

        case ブレンドモード.半透明:
            material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent;
            material.SetOverrideTag("RenderType", "Transparent");
            material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); // 内挿
            material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
            material.SetInt("_ZWrite", 0);                                               // 深度書き込みしない
            material.DisableKeyword("_ALPHATEST_ON");
            break;

        default:
            throw new ArgumentOutOfRangeException("blendMode", mode, null);
        }
    }
    // インスペクタの描画
    public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
    {
        ブレンドモード mode = DrawBlendMode(materialEditor, properties);// ブレンドモードはいろいろするので別関数

        // カットオフの時だけ、カットオフの閾値調整を表示する
        if (mode == ブレンドモード.カットオフ)
        {
            var cutoff = FindProperty("_Cutoff", properties);
            materialEditor.ShaderProperty(cutoff, cutoff.displayName);
        }

        var mainTex = FindProperty("_MainTex", properties);

        materialEditor.ShaderProperty(mainTex, mainTex.displayName);// テクスチャの設定

        var Color = FindProperty("_Color", properties);

        materialEditor.ShaderProperty(Color, Color.displayName); // 色の設定

        materialEditor.RenderQueueField();                       // 描画順を決めるキューの設定
    }