先回顾一下我们在哪上一步,Recast把整个3D世界切成了小方块。147万个三角形变成了一个整整齐齐的高度场。每个格子里存着一串Span,记录着"在这个位置、这个高度范围内有实体"。好了。现在你面前有一大堆方块。密密麻麻,层层叠叠。然后呢?然后你要回答一个问题——这些方块里,哪些地方能站人?这个问题听起来简单。不就是找到那些"上面是空气、下面是实体"的方块吗?人站在实体上面,头顶是空气,不就行了?没那么简单。远没那么简单。一、什么叫"能站人"?你觉得一个人能站在某个地方,需要满足什么条件?你可能会说:有地面就行了呗。好,那我给你一个45度的斜坡。你能站吗?勉强能。给你一个60度的斜坡呢?你得手脚并用了。给你一个90度的墙壁呢?那是蜘蛛侠才能干的事。所以第一个条件:脚下的地面不能太陡。再想想。你站在地面上,头顶有个天花板,天花板离地面只有半米。你一米八的个子,能站进去吗?站不进去。你得蹲着。但NPC不会蹲(大多数游戏里不会)。所以第二个条件:头顶要有足够的空间。还有。你站在一个平台上,平台只有10厘米宽。你能站稳吗?理论上你的脚可以踩在上面,但实际上你会掉下去。所以第三个条件:站的地方