爬墙和扒墙
碰撞和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: 上墙后角色的位置移动,请看下图说明
由于上墙的动作通常是有美术画好的从地下上到上面,画面虽然过去了,但是角色对象和碰撞还没跟上,如果不进行位移,角色则会掉下来。