| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [Author]: 玩个游戏 |
| | | // [ Date ]: Wednesday, August 23, 2017 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace vnxbqy.UI { |
| | | |
| | | public class OffsetImage:BaseMeshEffect { |
| | | public class OffsetImage:BaseMeshEffect { |
| | | |
| | | [SerializeField] |
| | | Vector2 m_Offset; |
| | | public Vector2 offset { |
| | | get { |
| | | return m_Offset; |
| | | } |
| | | set { |
| | | m_Offset = value; |
| | | [SerializeField] |
| | | Vector2 m_Offset; |
| | | public Vector2 offset { |
| | | get { |
| | | return m_Offset; |
| | | } |
| | | set { |
| | | m_Offset = value; |
| | | |
| | | } |
| | | } |
| | | |
| | | public override void ModifyMesh(VertexHelper vh) { |
| | | List<UIVertex> vertexs = new List<UIVertex>(); |
| | | vh.GetUIVertexStream(vertexs); |
| | | |
| | | if(vertexs == null || vertexs.Count == 0) { |
| | | return; |
| | | } |
| | | vh.Clear(); |
| | | |
| | | var positions = new Vector3[3]; |
| | | var uv0s = new Vector2[3]; |
| | | |
| | | var firstQuard = new UIVertex[6] { |
| | | vertexs[0], |
| | | vertexs[1], |
| | | vertexs[2], |
| | | vertexs[3], |
| | | vertexs[4], |
| | | vertexs[5] |
| | | }; |
| | | |
| | | for(var i = 0;i < firstQuard.Length;i++) { |
| | | var vertex = firstQuard[i]; |
| | | var position = vertex.position + new Vector3(offset.x,offset.y,0); |
| | | vertex.position = position; |
| | | firstQuard[i] = vertex; |
| | | |
| | | if((i % 3) == 2) { |
| | | positions[0] = firstQuard[i - 2].position; |
| | | uv0s[0] = firstQuard[i - 2].uv0; |
| | | positions[1] = firstQuard[i - 1].position; |
| | | uv0s[1] = firstQuard[i - 1].uv0; |
| | | positions[2] = firstQuard[i].position; |
| | | uv0s[2] = firstQuard[i].uv0; |
| | | |
| | | UIUtility.AddTriangle(vh,positions,Color.white,uv0s); |
| | | } |
| | | } |
| | | |
| | | public override void ModifyMesh(VertexHelper vh) { |
| | | List<UIVertex> vertexs = new List<UIVertex>(); |
| | | vh.GetUIVertexStream(vertexs); |
| | | |
| | | if(vertexs == null || vertexs.Count == 0) { |
| | | return; |
| | | } |
| | | vh.Clear(); |
| | | |
| | | var positions = new Vector3[3]; |
| | | var uv0s = new Vector2[3]; |
| | | var index = 5 * 6; |
| | | for(int i = 0;i < vertexs.Count;i++) { |
| | | |
| | | var firstQuard = new UIVertex[6] { |
| | | vertexs[0], |
| | | vertexs[1], |
| | | vertexs[2], |
| | | vertexs[3], |
| | | vertexs[4], |
| | | vertexs[5] |
| | | }; |
| | | if(i > index) { |
| | | |
| | | for(var i = 0;i < firstQuard.Length;i++) { |
| | | var vertex = firstQuard[i]; |
| | | var position = vertex.position + new Vector3(offset.x,offset.y,0); |
| | | vertex.position = position; |
| | | firstQuard[i] = vertex; |
| | | |
| | | if((i % 3) == 2) { |
| | | positions[0] = firstQuard[i - 2].position; |
| | | uv0s[0] = firstQuard[i - 2].uv0; |
| | | positions[1] = firstQuard[i - 1].position; |
| | | uv0s[1] = firstQuard[i - 1].uv0; |
| | | positions[2] = firstQuard[i].position; |
| | | uv0s[2] = firstQuard[i].uv0; |
| | | |
| | | UIUtility.AddTriangle(vh,positions,Color.white,uv0s); |
| | | } |
| | | } |
| | | |
| | | if((i % 3) == 2) { |
| | | positions[0] = vertexs[i - 2].position; |
| | | uv0s[0] = vertexs[i - 2].uv0; |
| | | positions[1] = vertexs[i - 1].position; |
| | | uv0s[1] = vertexs[i - 1].uv0; |
| | | positions[2] = vertexs[i].position; |
| | | uv0s[2] = vertexs[i].uv0; |
| | | |
| | | |
| | | var index = 5 * 6; |
| | | for(int i = 0;i < vertexs.Count;i++) { |
| | | |
| | | if(i > index) { |
| | | |
| | | } |
| | | |
| | | if((i % 3) == 2) { |
| | | positions[0] = vertexs[i - 2].position; |
| | | uv0s[0] = vertexs[i - 2].uv0; |
| | | positions[1] = vertexs[i - 1].position; |
| | | uv0s[1] = vertexs[i - 1].uv0; |
| | | positions[2] = vertexs[i].position; |
| | | uv0s[2] = vertexs[i].uv0; |
| | | |
| | | UIUtility.AddTriangle(vh,positions,Color.white,uv0s); |
| | | } |
| | | UIUtility.AddTriangle(vh,positions,Color.white,uv0s); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |