Close combat System help for accurate collision

I’m building a close combat system for my character just like in say Batman arkham city , street fighter or anything related that use this sort of system.

I’m not looking to build anything as complex as street fighter however for a simple punch and enemy receives the punch for example

The approach i’m doing now is attaching box colliders to the hands and feet for now and they all rescaled down to 0 meaning basically there not collidiable. There only collidiable when the punch button is pressed meaning i rescale them up to hittable range.

After this for test purposes I’ve made it so that when the enemy collides with the box it gets destroyed.

So far the whole concept I’ve explained works but its so inconsistent.
The collider doesn’t always collide or enemy doesn’t get destroyed. Basically the collision detection is not really accurate at all if i was to give it a percentage 10% just to be nice lol.

How can i improve collision detection in my case?

So everything with a separate collider on it should have a rigidbody set to isKinematic on that object - otherwise the collider isn’t immediately moved or scaled. The next problem is the fact that a punch is a very very quick movement - it’s quite possible that the physics won’t keep up with the speeds involved.

Therefore it’s probably better to do your own collision detection rather than relying on the Physics to do the interpolations for you correctly.

Remove colliders from everything except the targets that can be hit.

Store the position of the (say) the fist on each frame it is punching. On each frame SphereCast from the previous position to the new position and see if it hits something - if it does - there you go. The distance returned in the SphereCast is a good indication of the power of the punch when combined with the distance the fist moved on the previous frame, or you can just use the distance the fist moved on this frame.