1
所以我有一個3x3 gameBoard。角色從中間開始。當我按右鍵時什麼都沒有發生,當我按下左鍵時什麼都沒有發生,但是當我按下它時,它會移動到代碼中的位置。更新屏幕只能工作一次,然後停止工作|| UNITY
void Start()
{
transform.position = new Vector2(0.28f, -0.27f);
print(transform.position.x);
}
void Update()
{
if (ChrP == new Vector2(0.28f, -0.27f))
{
if (Mathf.Abs(Input.GetAxisRaw("Right")) > 0.0f)
{
transform.position = new Vector2(1.95f, -0.27f);
}
if (Mathf.Abs(Input.GetAxisRaw("Left")) > 0.0f)
{
transform.position = new Vector2(-1.36f, -0.27f);
}
if (Mathf.Abs(Input.GetAxisRaw("Down")) > 0.0f)
{
transform.position = new Vector3(0.28f, -1.923f);
}
if (Mathf.Abs(Input.GetAxisRaw("Up")) > 0.0f)
{
transform.position = new Vector3(0.28f, 1.401f);
}
else
{
}
}
}
所以,對於新的「向上」位置我有同樣類型的代碼,我已經檢查過了,但它只是凍結,而不是移動。 我的期望是,如果我按下了按鈕,它將檢查每一幀。也許我錯過了一些東西。 同樣在if語句之後,我擁有相同類型的代碼,但對於其他座標!
我建議你學習如何調試代碼,當然這是容易發現的東西?然而,如果'ChrP'值處於非常特定的位置,那麼您的'Update'方法只會做任何事情。 – DavidG
@MichelAtwood DavidG是對的你爲什麼在if語句開頭 –
if語句開頭太檢查對象所在的位置 –