68 lines
2.8 KiB
C#
68 lines
2.8 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
//============================================================
|
||
//支持中文,文件使用UTF-8编码
|
||
//@author Adam
|
||
//@create 20230207
|
||
//@company Adam
|
||
//
|
||
//@description:
|
||
//============================================================
|
||
namespace Utility
|
||
{
|
||
public enum RenderingMode
|
||
{
|
||
Opaque,
|
||
Cutout,
|
||
Fade,
|
||
Transparent,
|
||
}
|
||
public static class FadeUtility
|
||
{
|
||
public static void SetMaterialRenderingMode(Material material, RenderingMode renderingMode)
|
||
{
|
||
switch (renderingMode)
|
||
{
|
||
case RenderingMode.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");
|
||
material.DisableKeyword("_ALPHABLEND_ON");
|
||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
||
material.renderQueue = 2000;
|
||
break;
|
||
case RenderingMode.Cutout:
|
||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
|
||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
|
||
material.SetInt("_ZWrite", 1);
|
||
material.EnableKeyword("_ALPHATEST_ON");
|
||
material.DisableKeyword("_ALPHABLEND_ON");
|
||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
||
material.renderQueue = 2450;
|
||
break;
|
||
case RenderingMode.Fade:
|
||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
|
||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
|
||
material.SetInt("_ZWrite", 0);
|
||
material.DisableKeyword("_ALPHATEST_ON");
|
||
material.EnableKeyword("_ALPHABLEND_ON");
|
||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
||
material.renderQueue = 3000;
|
||
break;
|
||
case RenderingMode.Transparent:
|
||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
|
||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
|
||
material.SetInt("_ZWrite", 0);
|
||
material.DisableKeyword("_ALPHATEST_ON");
|
||
material.DisableKeyword("_ALPHABLEND_ON");
|
||
material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
|
||
material.renderQueue = 3000;
|
||
break;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|