/// <summary> /// 頂点の設定。始点と終点が結ばれていること /// </summary> public void SetVertices(List <Vector2> vertices, Color color) { //包括矩形から原点からのオフセットを求め適用する Rect rect = GeomUtil.CalculateRect(vertices); for (int i = 0; i < vertices.Count; ++i) { vertices[i] -= rect.center; } this.vertices = vertices; //座標をずらす transform.localPosition = rect.center; //改めて包括矩形を求める inclusionRect = GeomUtil.CalculateRect(vertices); //ポリゴンの生成 //末尾を削除(一時的) vertices.RemoveAt(vertices.Count - 1); polygon = new ConcavePolygon(vertices); //末尾に先頭を追加 vertices.Add(vertices[0]); //簡易メッシュの確保 drawEMesh = polygon.ToEasyMesh(color); subEMesh = polygon.ToEasyMesh(color); //描画用メッシュの領域確保 drawEMeshes = new EasyMesh[2]; //色 SetPolygonColor(color); draw = true; }
/// <summary> /// 頂点の設定 /// </summary> public void SetVertices(List <Vector2> vertices) { //包括矩形から原点からのオフセットを求め適用する Rect rect = GeomUtil.CalculateRect(vertices); for (int i = 0; i < vertices.Count; ++i) { vertices[i] -= rect.center; } this.vertices = vertices; //座標をずらす transform.localPosition = rect.center; //改めて包括矩形を求める inclusionRect = GeomUtil.CalculateRect(vertices); //ポリゴンの生成 vertices.RemoveAt(vertices.Count - 1); //末尾を一時的に削除 polygon = new ConcavePolygon(vertices); vertices.Add(vertices[0]); //末尾に始点を追加 //簡易メッシュの確保 drawEMesh = polygon.ToEasyMesh(polygonColor); targetColorEMesh = polygon.ToEasyMesh(polygonColor); //描画用簡易メッシュ領域の確保 eMeshes = new EasyMesh[2]; //コールバック onVertexChanged.Invoke(this); draw = true; }