C# 第一人称控制器卡在墙上

C# 第一人称控制器卡在墙上,c#,unity3d,C#,Unity3d,我正在做一个类似于minecraft的基于体素的项目,我的第一人称控制器遇到了问题 -->我会把整件事都发出去,这样就不会遗漏任何重要的东西 我有一个OnCollisionStay方法,可以检测我遇到的墙的角度(也就是说,我不想跑上90度的墙,或者跳到山上) 它工作正常,但问题出现在我的FixeUpdate方法中,我通过此行限制我的移动代码: if (!tooSteep || !grounded) { 所以我只能在不陡峭的地方移动,或者我没有被搁浅,但我试着让它成为我可以移动到任何地方

我正在做一个类似于minecraft的基于体素的项目,我的第一人称控制器遇到了问题

-->我会把整件事都发出去,这样就不会遗漏任何重要的东西

我有一个OnCollisionStay方法,可以检测我遇到的墙的角度(也就是说,我不想跑上90度的墙,或者跳到山上)

它工作正常,但问题出现在我的FixeUpdate方法中,我通过此行限制我的移动代码:

    if (!tooSteep || !grounded) {
所以我只能在不陡峭的地方移动,或者我没有被搁浅,但我试着让它成为我可以移动到任何地方的地方,只是不能走/跳上墙壁


我尝试创建一个“canJump”变量,但这只能解决部分问题如果用户与太陡的墙相撞,我如何防止用户输入影响y速度?

打电话给我的一个朋友,他说了我忽略的明显问题

显然,unity的默认碰撞器在它们上面有一定程度的摩擦。我刚刚创建了一个物理材质,它的摩擦系数为0,并且它的工作方式符合预期,我只需要限制墙壁跳跃,这不是问题

希望这对将来的人有所帮助

    if (!tooSteep || !grounded) {