如何确定声音只播放一次并发出错误?

时间:2019-01-26 22:35:24

标签: c# unity3d

因此,在角色移动脚本中,我尝试播放角色跳跃时所具有的跳跃音频。这很好,但是我有一个问题是:
在我的游戏中,当我击中一个敌人时,角色移动停止并且出现菜单。这里的问题是有时我仍然在空中击中一个敌人。这会导致我的跳跃声音发出错误并不断快速重放,从而产生非常可怕的噪音,因为当我击中物体时,角色会停止在空中移动。

只需清楚一点,问题不在于击中真正的敌人,而是问题是我在跳跃时要弹跳音,并且由于我死于敌人之上,所以我认为跳跃音会不断重复,因为我从未真正退出跳转,因为在死亡时所有角色移动都停止了,所以我仍然停留在障碍的顶部,因此跳转从未真正结束,然后菜单出现在屏幕上。

我当前的跳跃代码是:

if (controller.isGrounded)
{
    // Jumping for pc
    verticalVelocity = -gravity * Time.deltaTime;
    if (Input.GetKeyDown(KeyCode.Space)) 
    {
        verticalVelocity = jumpForce;
        animator.SetBool("is_in_air", true);
        jump.Play();
    }   
}

为了只进行jump.Play();我必须在这里做什么?当我死在敌人物体的顶部时,只玩一次而不会不断重复自己并发出那种可怕的声音吗?

编辑:我猜可能的解决方法是,一旦弹出死亡菜单,就仅使跳跃的声音片段或音频源静音。

0 个答案:

没有答案