Your right, I should profile it before making early judgments, but at the same time I have to watch out going down a path of refactors. I am only assuming because there could be 20-30-40 different units in the same scene all animated.
I am trying to accomplish this type of system without actually doing a raycast, and trying to keep everything as 2D math. I was thinking I could precalculate a tilemap(based on some floor mesh) for the entire level and store height for a x,y lookup and interpolate between tiles. But this quickly runs into issues because the floor mesh that this tilemap is based on doesnt really guarantee the tilemap is proportional(same triangle face sizes), unless its built that way, which could be meticulous...
Ill figure something out, thank you for the ideas and tips.