跳到主要内容

爬墙和扒墙

碰撞和Raycast

如图,是爬墙和扒墙对于碰撞判定的设置。

有三条从左向右的射线,其中:

  • Climb动作涉及到中间的线,决定是否可以进入滑墙和扒住不是墙角(墙面)的地方
  • Ledge动作涉及到顶部和中间的线,决定了如何识别一个墙角

射线说明

对于一个角色:

  • 顶部射线的位置最好碰撞区的最上面
  • 中间射线的位置通常位于角色中间偏上
  • 底部可以暂时忽略,后期会用到

射线长度:要比角色的碰撞盒子要长一些些,但不要长出过地形的一块砖的长度

配置说明

Climb(爬墙):

  • Allow Hanging: 允许抓住墙面
  • Use Move: 是否能在墙面上下移动
    • Move Up Speed: 向上的速度
    • Move Down Speed: 向下的速度
  • Max Fall Velocity: 最大下落速度,通常是负数
  • Fall Threshold: 决定下落到多大速度才从 ClimbFallStart => ClimbFalling
  • Climb Jump: 是否使用墙跳
    • Climb Jump Coyote: 离开墙面后可以跳跃的时间,即土狼时间
    • Climb Jump Interval: 抓墙跳的可再次跳跃的间隔时间

Ledge(扒墙):

  • Has Grab: 是否在抓住的那时播放 LedgeGrab 动画,有一个抓住的过程,注意:制作动画时播放时间不宜过长
  • Climb Complete Offset: 上墙后角色的位置移动,请看下图说明

由于上墙的动作通常是有美术画好的从地下上到上面,画面虽然过去了,但是角色对象和碰撞还没跟上,如果不进行位移,角色则会掉下来。