使用物理引擎的解决方案,使得移动更加平滑和连续。将播放器的自定义脚本替换为unity的内置物理引擎,并将移动的代码移动到FixedUpdate函数中,以确保移动和刷新频率同步。示例代码如下:
// 在播放器移动类中
private Rigidbody2D rb;
void Start() {
rb = GetComponent();
}
void FixedUpdate() {
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector2 movement = new Vector2(moveHorizontal, moveVertical);
rb.velocity = movement * speed;
}