统一的2D角色控制器(试图将老式的平台游戏带回来)
这几天,我试图创建一个统一的2D角色控制器(使用物理)。我对物理引擎刚起步,因此很难获得想要的控制感。如果有人可以为我发现的问题提供解决方案,我将非常高兴: 这是我现在的FixedUpdate: public void FixedUpdate() { Vector3 v=new Vector3(0,-10000*Time.fixedDeltaTime,0); _body.AddForce(v); v.y=0; if(state(MovementState.Left)) { v.x=-_walkSpeed*Time.fixedDeltaTime+v.x; if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=-_maxWalkSpeed; } else if(state(MovementState.Right)) { v.x= _walkSpeed*Time.fixedDeltaTime+v.x; if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=_maxWalkSpeed; } _body.velocity=v; Debug.Log("Velocity: "+_body.velocity); } 我在这里尝试通过向左和向右施加重力和线性力来移动刚体。我设置了一种物理材料,该材料在运动时不会弹跳,摩擦力为0,在静止时摩擦力为1。主要问题是我的撞机具有坡度,并且速度从上升(慢),下坡(更快)和在直线对撞机(正常)上行走而变化。如何解决?如您所见,我始终对x轴应用相同的速度。 对于玩家来说,我在脚位置设置了一个球体,这是我要施加力的刚体。 欢迎其他任何可以使我的生活更轻松的提示:)。 PD在回家时,我注意到我可以解决这个问题,方法是平行于玩家正在行走的表面施加恒定的力,但是不知道这是否是最佳方法。