【问题标题】:How can I reduce my character from sliding?我怎样才能减少我的角色滑动?
【发布时间】:2022-10-23 06:34:18
【问题描述】:
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public float speed;
public float jump;

private Rigidbody2D rb;

private void Start()
{
    rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
    rb.position += new Vector2(Input.GetAxis("Horizontal"), 0) * Time.deltaTime * speed;
    if(Mathf.Abs(rb.velocity.y) < 0.001f && Input.GetKeyDown(KeyCode.W))
    {
        rb.AddForce(new Vector2(0, jump), ForceMode2D.Impulse);
    }
}

所以我有我的球员运动的代码。我想知道如何才能减少我的角色滑动那么多。我不想在松开钥匙后立即停止。

【问题讨论】:

标签: c# unity3d


【解决方案1】:

您可以添加反向运动以使运动感觉更灵敏,或者您可以通过添加物理材料来改变摩擦力。反向运动通过增加力量使玩家停止对面的到想要的运动方向。它会阻止玩家过度滑动。另一种方法是添加物理材料并稍微增加摩擦力。这将使玩家更快地停止。我希望这个对你有用!

【讨论】:

    【解决方案2】:

    在输入管理器Edit->Project Settings->Input Manager 内部,有一个名为gravity 的属性。

    重力:没有输入时轴下降到中性的速度,以每秒为单位。

    减小此值将导致输入下降得更快,从而导致更少/没有滑动。

    您可以调试输入值以确认这一点。当您第一次按住水平输入时,您应该注意到从 0 到 1/-1 的斜升。放开输入后,您应该会看到该值回落到 0。

    var inputHorz = Input.GetAxis("Horizontal");
    
    Debug.Log(inputHorz);
    

    降低该值,直到感觉正确为止。这可以在您玩游戏时更改,但您需要在按下停止后将该值粘贴回去。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多