在射击玩家时,我向前走了几步,我想要的是让他在射击时停下来。
我采取了这种方法来防止他射击时移动,但是当我按住移动键时,他仍然会向前移动一点。
void Move(float movement) {
if (!this.anim.GetCurrentAnimatorStateInfo(0).IsTag("shoot")) {
MyRigidBody.velocity = new Vector2(movement * playerSpeed, MyRigidBody.velocity.y);
} else if(anim.GetCurrentAnimatorStateInfo(0).IsTag("shoot"))
{
MyRigidBody.velocity = new Vector2(0, 0);
}
}
答案 0 :(得分:0)
您可以使用布尔值来解决它。
Public bool isShooting;
在拍摄时将其设置为true,在不拍摄时将其设置为false。您可以使用OnPointerUp / OnPointerDown来跟踪事件。
void Move(float movement) {
if(!isShooting)
if (!this.anim.GetCurrentAnimatorStateInfo(0).IsTag("shoot")) {
MyRigidBody.velocity = new Vector2(movement * playerSpeed, MyRigidBody.velocity.y);
}
}