I'm new to using unity physics and I've ended up in a deep rabbit hole with the mechanic I'm trying to make. I have a 2D square ship that follows the users finger on mobile, and square weapons that float down the screen. On contact, they attach to the side they touched, kind of like a gun katamari. This has ended up meaning a lot of small colliders moving together very quickly into each other and needing to know positions at the point of contact. This has proven pretty difficult for several reasons. The biggest one however is how at least to my knowledge I'm dealing with information between frames. This has meant I'm doing things like casting backwards from the current frame to the last frame using a bit of info gained from ContactPoint2D which is somewhere in between. I've managed to get really close to a perfect system but not quiet there, and it shows. Regardless it's a really convoluted system to get this info that doesn't seem right. All of this has been going from the assumption the physics cycle runs, stores some info about the collision, then calls the collision event when the physics cycle is over. I don't actually know this is true though, and I can't find much about how unity's physics cycle actually works. Can someone please explain a little more about the order of events to do with collision and event calls? Importantly though if you know how to get something like the local position of contacts or something like that I'd really appreciate it. To my knowledge there's only the info you get from ContactPoint2D to work with and I'm struggling to get much from that to help with the attach position. I've been at this for weeks and at this point I'm tempted to make a dummy object follow the movement and ignore collision. I've tried everything I can think of and there's always a tiny catch to make it fail.