代码之家  ›  专栏  ›  技术社区  ›  B''H Bi'ezras -- Boruch Hashem

统一停止字符控制器跳山

  •  2
  • B''H Bi'ezras -- Boruch Hashem  · 技术社区  · 8 年前

    正如大多数人可能知道的,unity中的默认角色控制器设置允许您简单地跳上任何山/山,即使它超过坡度限制。虽然你不能走上去,但你仍然可以在前进的同时跳上去。

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

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

    在我的update函数中,我只在canJump为真时跳转(你可能已经猜到了)

    所以它几乎像预期的那样工作,当玩家接近超过坡度限制的斜坡时(我想至少,如果我的弧度计算是正确的,因为我并没有得到真正的命中率。正常。y是,如果这与坡度限制相同与否,所以我猜。。。如果有人能纠正我的话,那会有帮助的。)

    我也不知道如何阻止玩家从远处跳到陡峭的山坡上,然后呆在上面,如果他跳到了山坡上或者最后掉到了山坡上,他应该直接滑下山,直到他在一个规则的斜坡上,但是我不知道如何让角色控制者滑下东西,尤其是在他到达一个正常的斜坡之前?

    另外,这似乎也适用于(他不能跳的事实)角色有时走上楼梯,但这是一个很大的不-不-不,因为他应该总是能够跳上楼梯,如果他们足够小,但我不知道如何区分地形对象和楼梯。。。

    如果有人至少能回答这三个问题中的一个,那就太好了(但最好是所有问题,因为这都是同一个问题的一部分:如何让普通角色在slpoe之类的东西上滑动/跳跃(尽管这不是官方标题)

    0 回复  |  直到 8 年前