In all my enemy scripts, I noticed a severe lag spike causing each of them to spend more than 1 ms on calculations every frame. The culprit turns out to be Raycasting, which calls SyncTranformChanges and CreateShapes/DestroyShapes. The latter is sometimes called over 100 times, which causes a massive slowdown. Now this is where it gets funky. My Player uses the same Controller2D.Move() method for movement, and the SyncTranformChanges call for the player never calls CreateShapes/DestroyShapes: Enemy: Player: Same script, same .Move() method, same scene, same setup (BoxCollider2D + Rigidbody2D). What in the world is going on? Has anyone else ever experienced this?