1 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于您的if...else陳述,會(huì)出現(xiàn)此問題。例如,如果您單擊Right按鈕,則void MoveRight()調(diào)用。它設(shè)置movingRight = true和movingLeft = false。
所以在你的Update()函數(shù)中,首先else if (movingLeft == false)運(yùn)行并將你的速度設(shè)置為 0 并將你的動(dòng)畫設(shè)置為空閑。和第二次if (movingRight == true)運(yùn)行。但是因?yàn)閟peed = 0and animation = idleandUpdate()函數(shù)在每一幀都被調(diào)用,所以什么也沒發(fā)生。
您可以將腳本更改為:
public bool movingLeft = false;
public bool movingRight = false;
public float speed = 2f;
public Vector3 moveDirectionLeft = Vector3.left;
public Vector3 moveDirectionRight = Vector3.right;
void Start()
{
movingLeft = false;
movingRight = false;
}
void Update()
{
if (movingLeft == true)
{ // LEFT BUTTON //
WalkAnim.SetBool("WalkLeft", true);// walk left
transform.Translate(moveDirectionLeft * speed * Time.deltaTime);
}
else if (movingRight == true)
{ // RIGHT BUTTON //
WalkAnim.SetBool("WalkRight", true); // walks right
transform.Translate(moveDirectionRight * speed * Time.deltaTime);
}
else
{
WalkAnim.SetBool("WalkLeft", false);
WalkAnim.SetBool("WalkRight", false);
}
}
public void limitLD()
{ // UI Button Event trigger - pointUp
movingLeft = false;
}
public void limitRD()
{ // UI Button Event trigger - pointUp
movingRight = false;
}
public void MoveLeft()
{ // UI Button Event trigger - pointDown
movingLeft = true;
movingRight = false;
}
public void MoveRight()
{ // UI Button Event trigger - pointDown
movingLeft = false;
movingRight = true;
}
我希望它對(duì)你有幫助。
- 1 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)