Sort of neither, each roach is an empty object and a spawn manager does a raycast command batch to give updates on some ahead "stimuli". this determines if its moving, snapping to a new surface or turning around, this data gets sent to a job to do the math on the position and rotation updates.