1using System.Collections.Generic;
5[AddComponentMenu(
"UI/ToJ Effects/Overlay Texture", 18)]
6[DisallowMultipleComponent]
7[RequireComponent(typeof(Text))]
37 private List<UIVertex>
m_Verts =
new List<UIVertex>();
48 if (base.graphic !=
null)
50 base.graphic.SetVerticesDirty();
64 if (base.graphic !=
null)
66 base.graphic.SetVerticesDirty();
80 if (base.graphic !=
null)
82 base.graphic.SetVerticesDirty();
93 if (base.graphic !=
null)
95 base.graphic.SetMaterialDirty();
113 Vector2 zero = Vector2.zero;
114 Vector2 zero2 = Vector2.zero;
117 Rect rect = GetComponent<RectTransform>().rect;
118 zero =
new Vector2(rect.xMin, rect.yMax);
119 zero2 =
new Vector2(rect.xMax, rect.yMin);
124 zero2 =
m_Verts[m_Verts.Count - 1].position;
125 for (
int i = 0; i <
m_Verts.Count; i++)
127 if (
m_Verts[i].position.x < zero.x)
129 zero.x =
m_Verts[i].position.x;
131 if (
m_Verts[i].position.y > zero.y)
133 zero.y =
m_Verts[i].position.y;
135 if (
m_Verts[i].position.x > zero2.x)
137 zero2.x =
m_Verts[i].position.x;
139 if (
m_Verts[i].position.y < zero2.y)
141 zero2.y =
m_Verts[i].position.y;
145 float num = zero.y - zero2.y;
146 float num2 = zero2.x - zero.x;
147 for (
int j = 0; j < count; j++)
150 value.uv1 =
new Vector2(1f + (value.position.x - zero.x) / num2, 2f - (zero.y - value.position.y) / num);
156 for (
int k = 0; k < count; k++)
159 value.uv1 =
new Vector2(1 + ((k % 6 != 0 && k % 6 != 5 && k % 6 != 4) ? 1 : 0), 1 + ((k % 6 != 2 && k % 6 != 3 && k % 6 != 4) ? 1 : 0));
164 vh.AddUIVertexTriangleStream(
m_Verts);
171 base.graphic.SetMaterialDirty();
181 if (baseMaterial.shader != Shader.Find(
"Text Effects/Fancy Text"))
183 Debug.Log(
"\"" + base.gameObject.name +
"\" doesn't have the \"Fancy Text\" shader applied. Please use it if you are using the \"Overlay Texture\" effect.");
191 m_ModifiedMaterial.name = baseMaterial.name +
" with OT";
192 m_ModifiedMaterial.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector;
193 m_ModifiedMaterial.shaderKeywords = baseMaterial.shaderKeywords;
override void ModifyMesh(VertexHelper vh)
Texture2D m_OverlayTexture
virtual Material GetModifiedMaterial(Material baseMaterial)
TextureMode m_TextureMode
bool m_NeedsToSetMaterialDirty
Material m_ModifiedMaterial