Example #1
0
        private void RebuildCell(ref D2dPolygonColliderCell cell, int cellX, int cellY)
        {
            var xMin = CellSize * cellX;
            var yMin = CellSize * cellY;
            var xMax = Mathf.Min(CellSize + xMin, destructible.AlphaWidth);
            var yMax = Mathf.Min(CellSize + yMin, destructible.AlphaHeight);

            D2dColliderBuilder.AlphaData   = destructible.AlphaData;
            D2dColliderBuilder.AlphaWidth  = destructible.AlphaWidth;
            D2dColliderBuilder.AlphaHeight = destructible.AlphaHeight;
            D2dColliderBuilder.MinX        = xMin;
            D2dColliderBuilder.MinY        = yMin;
            D2dColliderBuilder.MaxX        = xMax;
            D2dColliderBuilder.MaxY        = yMax;

            D2dColliderBuilder.CalculatePolyCells();

            if (cell == null)
            {
                cell = D2dPolygonColliderCell.Get();
            }

            D2dColliderBuilder.BuildPoly(cell, tempColliders, child, Weld, Detail);

            cell.UpdateColliderSettings(IsTrigger, Material);
        }
        private void RebuildCell(D2dPolygonColliderCell cell, int x, int y)
        {
            var xMin = CellSize * x;
            var yMin = CellSize * y;
            var xMax = Mathf.Min(CellSize + xMin, destructible.AlphaWidth);
            var yMax = Mathf.Min(CellSize + yMin, destructible.AlphaHeight);

            D2dColliderBuilder.CalculatePoly(destructible.AlphaData, destructible.AlphaWidth, xMin, xMax, yMin, yMax);

            D2dColliderBuilder.BuildPoly(cell, unusedColliders, child, Detail);

            cell.UpdateColliderSettings(IsTrigger, Material);
        }