up_direction Godot 引擎中的参数
up_direction parameter in godot engine
我正在学习 godotengine,我对在 move_and_slide() 方法中使用 up_direction 参数感到困惑。实际上,我不明白它的作用以及它与 is_on_floor() 方法之间的关系。
提前致谢。
move_and_slide
的 up_direction
参数告诉 KinematicBody
或 KinematicBody2D
识别地板、墙壁和天花板的方向。
作为调用move_and_slide
的结果,对象会移动,会发生碰撞,并且会根据与up_direction
的角度对碰撞的对象进行分类。像这样:
- 如果碰撞方向与
up_direction
大致相反,则为地板。
- 如果碰撞方向与
up_direction
大致相同,则为天花板。
- 否则就是墙
然后 move_and_slide
将相应地更新 is_on_floor
、is_on_wall
和 is_on_ceiling
。
我说的是“粗略”,因为方向上的碰撞小于floor_max_angle
参数的值,它仍然会被计算在内。
此外,floor_max_angle
标准也用于决定它是否会停止或滑动它碰撞的表面。如果它会滑动,那会改变速度矢量。这就是为什么 move_and_slide
returns 一个新的速度向量。
同样值得注意的是,如果你通过零,一切都被认为是一堵墙。例如,如果你将 Vector2.ZERO
作为 up_direction
传递给 KinematicBody2D.move_and_slide
,那么它会认为它碰撞的所有东西都是一堵墙。这对自上而下的游戏很有用
我正在学习 godotengine,我对在 move_and_slide() 方法中使用 up_direction 参数感到困惑。实际上,我不明白它的作用以及它与 is_on_floor() 方法之间的关系。
提前致谢。
move_and_slide
的 up_direction
参数告诉 KinematicBody
或 KinematicBody2D
识别地板、墙壁和天花板的方向。
作为调用move_and_slide
的结果,对象会移动,会发生碰撞,并且会根据与up_direction
的角度对碰撞的对象进行分类。像这样:
- 如果碰撞方向与
up_direction
大致相反,则为地板。 - 如果碰撞方向与
up_direction
大致相同,则为天花板。 - 否则就是墙
然后 move_and_slide
将相应地更新 is_on_floor
、is_on_wall
和 is_on_ceiling
。
我说的是“粗略”,因为方向上的碰撞小于floor_max_angle
参数的值,它仍然会被计算在内。
此外,floor_max_angle
标准也用于决定它是否会停止或滑动它碰撞的表面。如果它会滑动,那会改变速度矢量。这就是为什么 move_and_slide
returns 一个新的速度向量。
同样值得注意的是,如果你通过零,一切都被认为是一堵墙。例如,如果你将 Vector2.ZERO
作为 up_direction
传递给 KinematicBody2D.move_and_slide
,那么它会认为它碰撞的所有东西都是一堵墙。这对自上而下的游戏很有用