Unity停止角色控制器跳上山峰

时间:2018-08-24 23:12:06

标签: unity3d

如大多数人所知,

,默认的字符控制器设置可以使您简单地跳上任何山/丘,即使其超过了坡度限制。当然,您不能走路,但在前进时仍可以跳起来。

为解决此问题,我使用了另一个答案中的代码:

void OnControllerColliderHit(ControllerColliderHit hit)
{
    float radian = cont.slopeLimit * Mathf.Deg2Rad;
    if (hit.normal.y <= radian)
    {
        canJump = false;


    } else
    {
        canJump = true;
    }
}

并且在我的更新函数中,仅当canJump为true时(您可能已经猜到了),我才会跳转

因此,当玩家接近超出坡度限制的坡度时,它几乎可以按预期工作(至少我认为,如果我的弧度计算正确,“因为我并没有真正受到打击。normal.y是,如果这与坡度极限是否相同,那么我有点猜测...如果有人可以对此进行校正,那将会有所帮助。)

无论如何,首先,我需要修正一个事实,即即使角色从山上对开,角色也不会跳动,我不知道如何计算他是否正对着陡峭的斜坡,只有当他与它发生冲突,因此,如果有人可以提供帮助,那将是一件好事,而且(相关):

我也不知道如何阻止玩家从远处的陡峭山坡上跳下来并停留在上面,但是如果他跳上山峰或最终落在山坡上,他应该简单地滑下山直到他在规则的坡度上,但我不知道要让CharacterContrller滑下来,尤其是不仅要等到他到达规则的坡度为止?

这似乎也适用于角色有时要爬楼梯的事实(他不能跳的事实),但这是一个很大的禁忌,因为如果他/她应该总是可以跳楼梯足够小,但我不知道如何区分地形对象和楼梯...

如果任何人至少可以回答这三个问题之一,那就太好了(但最好是全部,因为这都是同一个问题的一部分:如何使角色正常地滑动/跳跃有关滑倒物和东西!(即使这不是官方名称)

0 个答案:

没有答案