1using System.Collections.Generic;
5[AddComponentMenu(
"UI/ToJ Effects/Inner Bevel", 19)]
6[DisallowMultipleComponent]
7[RequireComponent(typeof(Text))]
8public class InnerBevel : BaseMeshEffect, IMaterialModifier
36 private List<UIVertex>
m_Verts =
new List<UIVertex>();
47 if (base.graphic !=
null)
49 base.graphic.SetVerticesDirty();
63 if (base.graphic !=
null)
65 base.graphic.SetVerticesDirty();
79 if (base.graphic !=
null)
81 base.graphic.SetVerticesDirty();
95 if (base.graphic !=
null)
97 base.graphic.SetVerticesDirty();
113 if (base.graphic !=
null)
115 base.graphic.SetVerticesDirty();
127 if (base.graphic !=
null)
129 base.graphic.SetMaterialDirty();
141 for (
int i = 0; i < count; i += 6)
144 Vector2 vector = (
m_Verts[i + 1].uv0 -
m_Verts[i].uv0).normalized;
145 Vector2 vector2 = (
m_Verts[i + 1].uv0 -
m_Verts[i + 2].uv0).normalized;
146 Vector4 tangent = vector;
147 tangent.z = vector2.x;
148 tangent.w = vector2.y;
149 value.tangent = tangent;
150 if (value.uv1 == Vector4.zero)
152 value.uv1 =
new Vector2(1f, 1f);
155 for (
int j = 1; j < 6; j++)
158 value.tangent =
m_Verts[i].tangent;
159 if (value.uv1 == Vector4.zero)
161 value.uv1 =
new Vector2(1f, 1f);
167 vh.AddUIVertexTriangleStream(
m_Verts);
174 base.graphic.SetMaterialDirty();
184 if (baseMaterial.shader != Shader.Find(
"Text Effects/Fancy Text"))
186 Debug.Log(
"\"" + base.gameObject.name +
"\" doesn't have the \"Fancy Text\" shader applied. Please use it if you are using the \"Inner Bevel\" effect.");
194 m_ModifiedMaterial.name = baseMaterial.name +
" with IB";
195 m_ModifiedMaterial.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector;
196 m_ModifiedMaterial.shaderKeywords = baseMaterial.shaderKeywords;
Vector2 m_BevelDirectionAndDepth
Material m_ModifiedMaterial
override void ModifyMesh(VertexHelper vh)
Vector2 bevelDirectionAndDepth
ColorMode m_HighlightColorMode
virtual Material GetModifiedMaterial(Material baseMaterial)
ColorMode shadowColorMode
ColorMode m_ShadowColorMode
ColorMode highlightColorMode
bool m_NeedsToSetMaterialDirty