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(D2dEdgeColliderCell 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.CalculateEdge(destructible.AlphaData, destructible.AlphaWidth, destructible.AlphaHeight, xMin, xMax, yMin, yMax); D2dColliderBuilder.BuildEdge(cell, unusedColliders, child, Detail); cell.UpdateColliderSettings(IsTrigger, Material); }