提交 65c5e13d 编写于 作者: timchen1002's avatar timchen1002

update

上级 81f5facc
......@@ -9,11 +9,11 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: Lit Opague
m_Shader: {fileID: 4800000, guid: 6848ac66b88696c4ea2f1389e0877b8e, type: 3}
m_ShaderKeywords: _PREMULTIPLY_ALPHA
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
m_CustomRenderQueue: 2000
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
......@@ -73,7 +73,7 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _PremulAlpha: 1
- _PremulAlpha: 0
- _Smoothness: 0.68
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
......
......@@ -13,7 +13,7 @@ Material:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
m_CustomRenderQueue: 3000
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
......@@ -28,9 +28,9 @@ Material:
- _Clipping: 0
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _SrcBlend: 1
- _ZWrite: 1
- _DstBlend: 10
- _SrcBlend: 5
- _ZWrite: 0
m_Colors:
- _BaseColor: {r: 0.8207547, g: 0.18970275, b: 0.18970275, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
......
......@@ -7171,7 +7171,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &1603649012
Transform:
m_ObjectHideFlags: 0
......
......@@ -7,6 +7,7 @@ public class CustomShaderGUI : ShaderGUI
MaterialEditor editor;
Object[] materials;
MaterialProperty[] properties;
bool showPresents;
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
......@@ -14,18 +15,35 @@ public class CustomShaderGUI : ShaderGUI
editor = materialEditor;
materials = materialEditor.targets;
this.properties = properties;
OpaquePreset();
EditorGUILayout.Space();
showPresents = EditorGUILayout.Foldout(showPresents, "Presents", true);
if (showPresents)
{
OpaquePreset();
ClipPreset();
FadePreset();
TransparentPreset();
}
}
void SetProperty(string name, string keyword, bool value)
{
SetProperty(name, value ? 1f : 0f);
SetKeyword(keyword, value);
if (SetProperty(name, value ? 1f : 0f))
{
SetKeyword(keyword, value);
}
}
void SetProperty(string name, float value)
bool SetProperty(string name, float value)
{
FindProperty(name, properties).floatValue = value;
MaterialProperty property = FindProperty(name, properties, false);
if (property != null)
{
property.floatValue = value;
return true;
}
return false;
}
void SetKeyword(string keyword, bool enabled)
......@@ -82,6 +100,9 @@ public class CustomShaderGUI : ShaderGUI
}
}
bool HasProperty(string name) => FindProperty(name, properties, false) != null;
bool HasPremultiplyAlpha => HasProperty("_PremulAlpha");
bool PresetButton(string name)
{
if (GUILayout.Button(name)) {
......@@ -103,4 +124,43 @@ public class CustomShaderGUI : ShaderGUI
RenderQueue = RenderQueue.Geometry;
}
}
void ClipPreset()
{
if (PresetButton("Clip"))
{
Clipping = true;
PremultiplyAlpha = false;
SrcBlend = BlendMode.One;
DstBlend = BlendMode.Zero;
ZWrite = true;
RenderQueue = RenderQueue.AlphaTest;
}
}
void FadePreset()
{
if (PresetButton("Fade"))
{
Clipping = false;
PremultiplyAlpha = false;
SrcBlend = BlendMode.SrcAlpha;
DstBlend = BlendMode.OneMinusSrcAlpha;
ZWrite = false;
RenderQueue = RenderQueue.Transparent;
}
}
void TransparentPreset()
{
if (HasPremultiplyAlpha && PresetButton("Transparent"))
{
Clipping = false;
PremultiplyAlpha = true;
SrcBlend = BlendMode.One;
DstBlend = BlendMode.OneMinusSrcAlpha;
ZWrite = false;
RenderQueue = RenderQueue.Transparent;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册