Beispiel #1
0
        /// <summary>
        /// Generate collider2d
        /// </summary>
        public void GenerateCollider()
        {
            NewArray <Vector2[]>(ref colliderRawPaths, borderPaths.Count);

            polygonCollider.pathCount = borderPaths.Count;
            for (int i = 0; i < borderPaths.Count; i++)
            {
                PolygonBorderPath colliderPath = borderPaths[i];
                NewArray <Vector2>(ref colliderRawPaths[i], colliderPath.points.Length);
                for (int j = 0; j < colliderPath.points.Length; j++)
                {
                    SpritePoint currentPoint = _points[colliderPath.points[j]];
                    colliderRawPaths[i][j] = SpritePositionToLocal(getSpritePositionOfSpritePoint(currentPoint) + currentPoint.colliderOffset);
                }
                polygonCollider.SetPath(i, colliderRawPaths[i]);
            }
        }
Beispiel #2
0
 protected void tringulate()
 {
     if (triangulator == null)
     {
         triangulator = new Triangulator(this);
     }
     triangulator.useDeltaPosition = triangulateWithOffsetPosition;
     triangulator.trinagulate();
     borderPaths.Clear();
     foreach (var item in triangulator.bigLoops)
     {
         PolygonBorderPath newP = new PolygonBorderPath();
         borderPaths.Add(newP);
         List <int> pointList = new List <int>();
         foreach (var item2 in item.edgeNodes)
         {
             pointList.Add(item2.index);
         }
         newP.points = pointList.ToArray();
     }
 }
 protected void tringulate()
 {
     if (triangulator == null)
         triangulator = new Triangulator(this);
     triangulator.useDeltaPosition = triangulateWithOffsetPosition;
     triangulator.trinagulate();
     borderPaths.Clear();
     foreach (var item in triangulator.bigLoops)
     {
         PolygonBorderPath newP = new PolygonBorderPath();
         borderPaths.Add(newP);
         List<int> pointList = new List<int>();
         foreach (var item2 in item.edgeNodes)
         {
             pointList.Add(item2.index);
         }
         newP.points = pointList.ToArray();
     }
 }