我的突破游戏中的动作似乎有些紧张,我不确定为什么。
任何帮助将不胜感激。
private Rigidbody2D rb;
public float speed = 10f;
public float movement;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
movement = Input.GetAxis("Horizontal");
}
private void FixedUpdate()
{
rb.MovePosition(transform.position + (Vector3.right * speed * Time.deltaTime * movement));
}
Time.deltaTime
可能会断断续续。
使用Time.fixedDeltaTime
,如documentation中所建议。
在FixedUpdate
内,transform
的值可能不同于物理计算的Rigidbody
的值。
您应该只使用和更新Rigidbody
中的FixedUpdate
组件:
// |
// V
rb.MovePosition(rb.position + Vector3.right * speed * Time.deltaTime * movement);