85 lines
3.0 KiB
C#
85 lines
3.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class FloorController : MonoBehaviour
|
|
{
|
|
public Material floor_mat;
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
|
|
[ContextMenu("͸Ã÷")]
|
|
public void FloorTransparent()
|
|
{
|
|
SetMaterialRenderingMode(floor_mat, renderingMode: RenderingMode.Transparent);
|
|
Color c = floor_mat.color;
|
|
c.a = 0.4f;
|
|
}
|
|
|
|
[ContextMenu("Õý³£")]
|
|
public void FloorNormal()
|
|
{
|
|
SetMaterialRenderingMode(floor_mat, renderingMode: RenderingMode.Opaque);
|
|
}
|
|
|
|
public enum RenderingMode
|
|
{
|
|
Opaque,
|
|
Cutout,
|
|
Fade,
|
|
Transparent,
|
|
}
|
|
|
|
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 = -1;
|
|
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;
|
|
}
|
|
}
|
|
}
|