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上面