protected override void UpdateShape(GameObject root) { Fix64Vec2 s = CalculateSize(); if (s != Fix64Vec2.zero) { Fix64Vec2[] scaled = new Fix64Vec2[convexVertsCount]; for (int i = 0; i < convexVertsCount; i++) { scaled[i] = convexVerts[i] * s; } Fix64 angle = Fix64.zero; Fix64Vec2 center = Fix64Vec2.zero; if (gameObject != root) { angle = Fix64.DegToRad(_pTransform.localEulerAngles.z); center = (Fix64Vec2)_pTransform.localPosition; } Parallel2D.UpdatePolygon(_shape, _fixture, scaled, convexVertsCount, center, angle); } }