Unity Rigidbody2D速度突然冻结

本文关键字:冻结 突然 速度 Rigidbody2D Unity | 更新日期: 2023-09-27 18:02:49

我用c#编写了一个使用Rigidbody2D速度的角色移动脚本。然而,有时当我尝试移动时,我的角色移动后突然冻结,无法前进。只有向后。我检查了碰撞器,它们都是相等的。我甚至尝试了AddForce,但它仍然死机。

using UnityEngine;
using System.Collections;
public class CharacterController2D : MonoBehaviour {
[SerializeField]
float speed = 5;
[SerializeField]
float jumpForce = 500;
[SerializeField]
LayerMask whatisground;
[SerializeField]
bool isGrounded = false;
Transform groundCheck;
private Rigidbody2D rb2d;
// Use this for initialization
void Start () {
    rb2d = gameObject.GetComponent<Rigidbody2D> ();
    groundCheck = gameObject.transform.GetChild (0);
}
void FixedUpdate(){
    float hor = Input.GetAxis ("Horizontal");
    rb2d.AddForce (new Vector2 (hor * speed,0));
    //rb2d.velocity = new Vector2(hor*speed,rb2d.velocity.y);
    isGrounded = Physics2D.OverlapCircle (groundCheck.position, 0.15F);
}
// Update is called once per frame
void Update () {
}
}

Unity Rigidbody2D速度突然冻结

你的角色从一个碰撞器走到另一个碰撞器吗?如果是这种情况,检查碰撞器之间的交集是否阻碍了你的角色。