動的にMaterialを作成した後で、半透明化する設定方法が、調べてもなかなか見つからなかったので、メモしておきます。
マテリアル作成csファイルの一部
material = new Material (Shader.Find ("Universal Render Pipeline/Unlit"));
material.SetFloat("_Surface", (float)BaseShaderGUI.SurfaceType.Transparent);
BaseShaderGUI.SetupMaterialBlendMode(material); //<-これが大事!
BaseShaderGUI.SetupMaterialBlendMode()を呼ばないと所定のBlandModeなどの設定が適用されないのでご注意。
ただ、BaseShaderGUIはUnityEditor用なのでEditorではない環境に向けては、BaseShaderGUI.SetupMaterialBlendMode()の中身を引っ張てくる必要が有ります。
という事で、Runtimeで行いたい場合はこちら。
material = new Material(Shader.Find("Universal Render Pipeline/Unlit"));
// Alpha Blend
material.SetFloat("_SrcBlend", (float)UnityEngine.Rendering.BlendMode.SrcAlpha);
material.SetFloat("_DstBlend", (float)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
// General Transparent Material Settings
material.SetOverrideTag("RenderType", "Transparent");
material.SetFloat("_ZWrite", 0.0f);
material.renderQueue = (int)RenderQueue.Transparent;
material.renderQueue += material.HasProperty("_QueueOffset") ? (int)material.GetFloat("_QueueOffset") : 0;
material.SetShaderPassEnabled("ShadowCaster", false);
AlphaBlend以外のブレンディングが必要な場合は、別途切り替える必要が有りますが、まぁそこはBaseShaderGUI.SetupMaterialBlendMode()を見た方が早いということで。。