当按键已被按下时停止按键

问题描述 投票:0回答:1

enter image description here

嘿伙计们,所以我的玩家按 E 打开箱子并在完成后获得积分。 问题是他可以一次又一次地按下。

我不想只是禁用该对象。

如何阻止玩家与宝箱互动并获得无限积分?

提前致谢!

我还没有尝试过任何事情

c# unity-game-engine collision
1个回答
0
投票

有一个布尔值来标记箱子已经被打开,如

isOpen
wasOpened

然后更改 if 语句以包含 wasOpened 为 false 的检查。在 if 语句中设置 wasOpened true 。

private void OnTriggerStay2D(Collider collision)
{
    if(collision.gameObject,CompareTag("Player") && Input.GetKey(KeyCode.E) && !wasOpened)
    {
        anim.SetBool("opening", true);
        coins += 1;
        coinsText.text = "Coins: " + coins;
        
        Coin.SetActive(true);
        Destroy(textBox, 0.2f);
        getCoin  = true;
        wasOpened = true;
    }
}

这意味着您只能打开它一次。请记住在其余变量声明中进一步创建

wasOpened
变量。

并作为未来问题的注释。请以文本形式提供代码,并像我一样采用代码格式。为了回答你的问题,我不得不从图像中转录你的代码,这会让人们不想回答你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.