Hmmm, interesting. Rather than checking if the hero is IN the area, you could place things at the edge to check for collision. Using some basic 3d vector math, you could position small objects at each corner of the region and check to see if the hero's position would intersect that.
If I have time after work and homework tonight I will try to write up some code for it.
Here is the vector math you could use:
Vector=<StartX,StartY,StartZ>+t*<Xdistance,Ydistance,Zdistance>
Where startX,StartY, and StartZ would be the coordinates of the start object and the Xdistance,Ydistance,Zdistance would be the distance traveled from the start to the end point (or the coordinates of the second object minus the coordinates of the first). t is just a variable for time.
So you would use 2 vectors:
1 for the "wall" and 1 for the hero's movement
This would result in 3 equations:
StartX+t1*Xdistance=HeroX+t2*HeroTravelX
StartY+t1*Xdistance=HeroY+t2*HeroTravelY
StartZ+t1*Xdistance=HeroZ+t2*HeroTravelZ
The math to solve for t1 and t2 would use the first 2 and then you plug in the values you find for t1 and t2 into the 3rd equation and see if it satisfies all three conditions. The idea here is it will check for all positions along each line and see if they ever equal the same thing.
I will get back to you if you need help with the algebra and I will try to work out the code if I can
Hope this helps!
Great Quote:
"Time...LINE??? Time isn't made out of lines...it is made out of circles. That is why clocks are round!" -Caboose