我正在创建一个2D Unity游戏,但我遇到了一个让我感到困惑的问题,我似乎无法找到如何获得输入键“E”的上下文我试图制作一个系统,当玩家站在商店并按下“E”时,他们进入商店并可以购买东西
(the第一个if语句是将商店更改为突出显示的颜色以使其清晰,因此忽略它,ShopSR只是商店精灵渲染器的变量,现在也不能进入商店,我只是使用print作为占位符)
验证码:
private void OnTriggerEnter2D(Collider2D other)
{
if(other.CompareTag("Shop"))
{
ShopSR.sprite = ShopHighlighted;
}
if (other.CompareTag("Shop") && Input.GetKeyDown(KeyCode.E))
{
print("ENTER SHOP");
}
}
2条答案
按热度按时间wh6knrhe1#
你将无法在进入触发时以 lightning 般的速度按下E键,当然你可以设法按下它,但这是最有可能的铁杆球员。如果你想使用输入,那么你需要更新它的每一帧:
zengzsys2#
你可以这样做:
或者使用OnTriggerStay2D遵循上述建议