球员在射击时做些小动作

时间:2019-05-10 19:49:30

标签: c# unity3d

在射击玩家时,我向前走了几步,我想要的是让他在射击时停下来。

我采取了这种方法来防止他射击时移动,但是当我按住移动键时,他仍然会向前移动一点。

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);
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以使用布尔值来解决它。

Public bool isShooting;

在拍摄时将其设置为true,在不拍摄时将其设置为false。您可以使用OnPointerUp / OnPointerDown来跟踪事件。

新的Move方法:

void Move(float movement) {
if(!isShooting)
    if (!this.anim.GetCurrentAnimatorStateInfo(0).IsTag("shoot")) {
        MyRigidBody.velocity = new Vector2(movement * playerSpeed, MyRigidBody.velocity.y);
    } 
}