所以我在Unity中做了一個2D平臺遊戲(還是c#和Unity的新手),並且我正在爲一個簡單的方塊製作一個移動腳本,並且這個方塊會隨機的停下來,我不得不跳下去開始再次移動,只是爲了再次發生。Unity 2d運動腳本問題
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed;
public float jumpHeight;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
GetComponent<Rigidbody2D>().velocity = new Vector2(GetComponent<Rigidbody2D>().velocity.x, jumpHeight);
}
if (Input.GetKey(KeyCode.D))
{
GetComponent<Rigidbody2D>().velocity = new Vector2(moveSpeed, 0);
}
if (Input.GetKey(KeyCode.A))
{
GetComponent<Rigidbody2D>().velocity = new Vector2(-moveSpeed, 0);
}
}
}
這很可能是由於對象上的對撞機造成的。物體是否放置在「地面」上?如果沒有地面(並且禁用重力),您的腳本是否可以工作? – Bejasc
您的代碼不完整'GetComponent().velocity = new Vector2(GetComponent ().velocity.x,'這使我相信這不是正在使用的確切代碼,請提供確切的代碼。在這段代碼中似乎沒有任何功能性錯誤,就像@Bejasc指出的那樣,它可能是地面上的碰撞,確保地面是球形對撞機,或者用球形對撞機嘗試。 –
Maakep