public void ChangePivot(PIVOT_POSITION pivot) { if (_pivot == pivot) { return; } float w = size.x, h = size.y; Vector3[] vertices = new Vector3[4]; if (pivot == PIVOT_POSITION.CENTER) { vertices[0] = new Vector3(-w / 2, h / 2, 0); vertices[1] = new Vector3(w / 2, h / 2, 0); vertices[2] = new Vector3(-w / 2, -h / 2, 0); vertices[3] = new Vector3(w / 2, -h / 2, 0); } else if (pivot == PIVOT_POSITION.BOTTOM) { vertices[0] = new Vector3(-w / 2, h, 0); vertices[1] = new Vector3(w / 2, h, 0); vertices[2] = new Vector3(-w / 2, 0, 0); vertices[3] = new Vector3(w / 2, 0, 0); } else { throw new UnityException("NOT IMPLEMENTED YET"); } mesh.vertices = vertices; Vector2[] uvs = new Vector2[4]; Rect r = _uvRect; uvs[0] = new Vector2(r.x, r.y + r.height); uvs[1] = new Vector2(r.x + r.width, r.y + r.height); uvs[2] = new Vector2(r.x, r.y); uvs[3] = new Vector2(r.x + r.width, r.y); mesh.uv = uvs; mesh.RecalculateBounds(); mesh.RecalculateNormals(); _pivot = pivot; }
public void ChangePivot(PIVOT_POSITION pivot) { if (_pivot == pivot) return; float w = size.x, h = size.y; Vector3[] vertices = new Vector3[4]; if (pivot == PIVOT_POSITION.CENTER) { vertices[0] = new Vector3(-w / 2, h / 2, 0); vertices[1] = new Vector3(w / 2, h / 2, 0); vertices[2] = new Vector3(-w / 2, -h / 2, 0); vertices[3] = new Vector3(w / 2, -h / 2, 0); } else if (pivot == PIVOT_POSITION.BOTTOM) { vertices[0] = new Vector3(-w / 2, h, 0); vertices[1] = new Vector3(w / 2, h, 0); vertices[2] = new Vector3(-w / 2, 0, 0); vertices[3] = new Vector3(w / 2, 0, 0); } else { throw new UnityException("NOT IMPLEMENTED YET"); } mesh.vertices = vertices; Vector2[] uvs = new Vector2[4]; Rect r = _uvRect; uvs[0] = new Vector2(r.x, r.y + r.height); uvs[1] = new Vector2(r.x + r.width, r.y + r.height); uvs[2] = new Vector2(r.x, r.y); uvs[3] = new Vector2(r.x + r.width, r.y); mesh.uv = uvs; mesh.RecalculateBounds(); mesh.RecalculateNormals(); _pivot = pivot; }