我正在尝试制作一款FPS游戏,但当我按下w键一段时间,然后释放它的幻灯片比想要的要远一点。我是Unity的新手,我认为它与更新有关。代码:
public float moveSpeed = 5f;
public float jumpForce = 5f;
public CharacterController controller;
private Vector3 moveDirection;
public float gravityScale;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
float yStore = moveDirection.y;
moveDirection = (transform.forward * Input.GetAxis("Vertical")) + (transform.right * Input.GetAxis("Horizontal"));
moveDirection = moveDirection.normalized * moveSpeed;
moveDirection.y = yStore;
if (controller.isGrounded)
{
moveDirection.y = 0f;
if (Input.GetButtonDown("Jump"))
{
moveDirection.y = jumpForce;
}
}
moveDirection.y = moveDirection.y + (Physics.gravity.y * gravityScale);
controller.Move(moveDirection * Time.deltaTime);
}发布于 2021-05-26 03:37:25
将物理材质添加到地面上,并将动态摩擦力设置为1。接下来,将静态摩擦力从0.5设置为1。最后但并非最不重要的是,将弹跳度设置为0。
尝试使用这些值,直到找到令人满意的值。以下是文档的链接:
https://docs.unity3d.com/Manual/class-PhysicMaterial.html
它基本上解释了每个属性的作用。
https://stackoverflow.com/questions/67694309
复制相似问题