Unity有一个函数
然而,任何复杂项目都不止一个地形。(事实上,任何大型场景都不可避免会涉及地形拼接。)
Unity有一个函数
显然,这完全没用。
实际上,有没有一种快速的方法来获取“你下方”的地形?那么就可以使用快速函数
请注意,当然,你可以通过投射找到你下方的地形!但是你已经拥有了海拔高度,所以不需要担心
简而言之,是否有与
(或者说,
Terrain.sampleHeight(point)
非常好用,它可以立即给出脚下地形的高度,而无需进行转换。然而,任何复杂项目都不止一个地形。(事实上,任何大型场景都不可避免会涉及地形拼接。)
Unity有一个函数
Terrain.activeTerrain
,这个函数竟然提供了“第一个已加载的”地形。显然,这完全没用。
实际上,有没有一种快速的方法来获取“你下方”的地形?那么就可以使用快速函数
.sampleHeight
?请注意,当然,你可以通过投射找到你下方的地形!但是你已经拥有了海拔高度,所以不需要担心
.sampleHeight
!简而言之,是否有与
sampleHeight
相匹配的函数,可以让该函数知道给定xyz使用哪个地形?(或者说,
sampleHeight
只是一个相对无用的演示函数,仅在具有一个地形的演示中可用吗?)
Terrain.GetPosition
的工作原理,因为文档上没有更多的信息,而且我也没有设置场景来验证,但我相信它是地形的中心点。 "猜测在你下面的那个将会是最近的吗?" 不是的。由于我正在与Vector3
进行比较,因此使用了x、y、z三个分量来确定这一点。它只是检查最近的地形。 - Programmer(terrains[0].GetPosition() - playerPos).sqrMagnitude;
和var dist = (terrainPos - playerPos).sqrMagnitude;
这一部分更改为使用y分量。其余代码应保持不变。 - ProgrammerVector3.Distance
或Vector3.sqrMagnitude
,但最终决定使用Vector3.sqrMagnitude
因为它更快。此外,你提到了快速方式,所以使用linq函数会相反。 - Programmer