我怎样才能减少我的角色滑动?
How can I reduce my character from sliding?
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);
}
}
所以我有这个代码用于我的玩家移动。我想知道我怎样才能减少我的性格滑动那么多。我不想在松开钥匙后立即停止。
在输入管理器里面,Edit
->Project Settings
->Input Manager
,有一个叫做gravity
的属性。
Gravity: Speed in units per second that the axis falls toward neutral when no input is present.
减小此值会导致输入下降得更快,从而导致 less/no 滑动。
您可以调试您的输入值来确认这一点。当您第一次按住水平输入时,您应该注意到从 0 到 1/-1 的斜坡。松开输入后,您应该会看到值回落到 0。
var inputHorz = Input.GetAxis("Horizontal");
Debug.Log(inputHorz);
降低值直到感觉正确为止。这可以在玩游戏时更改,但您需要在按下停止后将该值粘贴回去。
您可以添加 counter-movement 以使运动感觉更灵敏,或者您可以通过添加物理 material 来改变摩擦力。 Counter-movement 通过向 相反 的移动方向添加一个力使玩家停止。它会阻止玩家滑动太多。另一种方法是添加物理 material 并稍微增加摩擦力。这将使玩家停止得更快。希望对您有所帮助!
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);
}
}
所以我有这个代码用于我的玩家移动。我想知道我怎样才能减少我的性格滑动那么多。我不想在松开钥匙后立即停止。
在输入管理器里面,Edit
->Project Settings
->Input Manager
,有一个叫做gravity
的属性。
Gravity: Speed in units per second that the axis falls toward neutral when no input is present.
减小此值会导致输入下降得更快,从而导致 less/no 滑动。
您可以调试您的输入值来确认这一点。当您第一次按住水平输入时,您应该注意到从 0 到 1/-1 的斜坡。松开输入后,您应该会看到值回落到 0。
var inputHorz = Input.GetAxis("Horizontal");
Debug.Log(inputHorz);
降低值直到感觉正确为止。这可以在玩游戏时更改,但您需要在按下停止后将该值粘贴回去。
您可以添加 counter-movement 以使运动感觉更灵敏,或者您可以通过添加物理 material 来改变摩擦力。 Counter-movement 通过向 相反 的移动方向添加一个力使玩家停止。它会阻止玩家滑动太多。另一种方法是添加物理 material 并稍微增加摩擦力。这将使玩家停止得更快。希望对您有所帮助!