я делал движущуюся анимацию на проигрывателе и код выглядит следующим образом:Анимации не работает при переключении на оси управления на экран кнопки управления
if (Input.GetAxis ("Horizontal") > 0.5||Input.GetAxis ("Horizontal") < -0.5) {
myRigidBody.velocity = new Vector2 (Input.GetAxis ("Horizontal") * moveSpeed, myRigidBody.velocity.y);
robotMove = true;
lastMove = myRigidBody.velocity.x;
}
anim.SetFloat ("MoveX", Input.GetAxis ("Horizontal"));
anim.SetBool ("RobotMoving", robotMove);
anim.SetFloat ("LastMoveX", lastMove);
, как вы можете видеть выше элементы управления осями управления (клавиатура) ,
Но я хочу, чтобы эти анимации работали над кнопками управления, которые я создал на экране!
У меня есть эти два butons, как показано на рис:
Я использую eventrigger
onPointerDown
и прилагается плеерgameobject
так, чтобы вызывать эти функции:
public void moveleft(){
myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y);
robotMove = true;
anim.SetFloat ("MoveX", -moveSpeed);
anim.SetBool ("RobotMoving", robotMove);
}
public void moveright(){
myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y);
robotMove = true;
anim.SetFloat ("MoveX", moveSpeed);
anim.SetBool ("RobotMoving", robotMove);
}
public void jump(){
if (grounded) {
myRigidBody.velocity = new Vector2 (myRigidBody.velocity.x, jumpHeight);
}
Теперь просто подобно тому, как осей управляет, игрок перемещается на некоторое расстояние (не непрерывно, если я продолжаю удерживать), но анимация, которая была работа над осями НЕ РАБОТАЕТ В ЭТИХ КНОПКАХ!
может кто-нибудь сказать, почему это происходит?
Нужно также увидеть код для кнопок. Если мое предположение верно, вы просто делаете «MoveLeft()» в 1 кадре, который вы нажимаете на кнопку? – Maakep
Да! 'moveLeft()' для левой и 'MoveRight' для правой. код выше @Fredrik – utkdub