Hey, that's an option too. I already solved this problem in another way with only few events. And works 100%.
However, another option I've tried earlier, and it work pretty well, but only for object that are x,y symmetrical, was to calculate
if actor overlapping platform; platform pick highest; set actor.z to platform.z-distance(actor.x,actor,y,platform.x,platform.y)/segmentDepth)* I guess I'd had modify this condition to work for asymmetrical objects using your solution.
SegmentDepth is the height of the segment of the platform. For example in my projects case it was something like platform.depth/5. However, since my mesh isn't vertically symmetrical, I would have to adjust this number manually across each height, so I ended up working out something else that works now at every height and also has correct Z picking ( and done it last night and was super happy and moving on with the project).
*PS.And wouldn't it be nice if construct would have such simple scripting feature too? platform pick highest; etc. that would be super fast to program)