Android 切换到轴控件到屏幕按钮控件时动画不工作

Android 切换到轴控件到屏幕按钮控件时动画不工作,android,animation,unity3d,touch,unity5,Android,Animation,Unity3d,Touch,Unity5,我在播放器上做移动动画,代码如下: if (Input.GetAxis ("Horizontal") > 0.5||Input.GetAxis ("Horizontal") < -0.5) { myRigidBody.velocity = new Vector2 (Input.GetAxis ("Horizontal") * moveSpeed, myRigidBody.velocity.y); robotMove = true;

我在播放器上做移动动画,代码如下:

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);
public void moveLeft(){



        myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", -moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);


    }

    public void moveRight(){



        myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);



    }
    public void stop(){

        robotMove = false;

        anim.SetBool ("RobotMoving", robotMove);

    }
现在,就像轴控件一样,播放器正在移动到某个距离(如果我一直按住,则不会连续移动),但是在轴上工作的动画在这些按钮中不工作


有人能告诉我为什么会这样吗?

为了帮助别人,我解决了我的问题,如下所示:

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);
public void moveLeft(){



        myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", -moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);


    }

    public void moveRight(){



        myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);



    }
    public void stop(){

        robotMove = false;

        anim.SetBool ("RobotMoving", robotMove);

    }
请参见您可以在
update()
中或在一些外部
函数()中调用amin.setxxx仅调用一个
我所做的是将所有动画值放入我的moveLeft()和moveRight()函数中,如下所示:

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);
public void moveLeft(){



        myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", -moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);


    }

    public void moveRight(){



        myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y);
        robotMove = true;
        lastMove = myRigidBody.velocity.x;
        anim.SetFloat ("MoveX", moveSpeed);
        anim.SetFloat ("LastMoveX", lastMove);
        anim.SetBool ("RobotMoving", robotMove);



    }
    public void stop(){

        robotMove = false;

        anim.SetBool ("RobotMoving", robotMove);

    }

我在左键和右键的指针上调用此停止按钮以停止移动

还需要查看按钮的代码。如果我的猜测是正确的,您只是在1帧中执行“MoveLeft()”,您正在单击按钮?是的moveLeft()`表示左侧,
MoveRight
表示右侧。代码在@Fredrik上面