Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        /// <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;
        }