本来是想通过OnTriggerStay来检测玩家与物品的碰撞,如果一直处于碰撞中,且按下了K键,那么就能拾取。
但是用这种方法总会有某种延迟的问题(可能是跟碰撞检测频率有关),导致我按多次K键才有可能捡起物品。
所以换一种思路,开始碰撞时将某bool值设为true,结束碰撞时设为false。然后在Update中检测bool值和按键,拾取物品。
bool CanBePick = false;
private void OnTriggerEnter(Collider other)
{
CanBePick = true;
Debug.Log("玩家与装备开始碰撞");
}
private void OnTriggerExit(Collider other)
{
CanBePick = false;
Debug.Log("玩家与装备脱离碰撞");
}文章来源:https://www.toymoban.com/news/detail-427651.html
private void Update()
{
if (CanBePick)
{
if (Input.GetKeyDown(KeyCode.K))
{
AddNewItem();
Destroy(gameObject);
Debug.Log("玩家已捡起");
}
}
}文章来源地址https://www.toymoban.com/news/detail-427651.html
到了这里,关于Unity实现按键拾取物品的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!