c# - OnTriggerEnter2D 被未标记为触发器的碰撞器触发?
问题描述
我正在开发一个标准的 Top-Down 2D RPG。在我的 Player 对象上,我有两个对撞机,一个是常规的 2D 盒式对撞机,未标记为处理碰撞的触发器,它垂直小于玩家。我有另一个盒子对撞机 2D,它被标记为触发器,作为一种碰撞盒工作,它覆盖了整个玩家。在拾取物品时,我想使用触发对撞机,所以我使用了以下代码:
private void OnTriggerEnter2D(Collider2D other)
{
if (other.GetComponent<DroppedItem>() != null && other.isTrigger)
{
Debug.Log("Picked up item.");
DroppedItem item = other.GetComponent<DroppedItem>();
inventory.AddItem(item.item, item.itemAmount);
Destroy(item.gameObject);
}
}
每次我与丢弃的项目发生碰撞时都会触发两次调试消息,该项目也有一个触发对撞机,即使我随后销毁了该项目。如果我将触发器对撞机标记为非触发器,则调试消息也会触发两次,反之亦然。我该如何避免这种情况?
解决方案
推荐阅读
- json - 如何将两个不同的jq语句的行编织在一起
- azure-application-insights - 在应用程序洞察力中用作会话 ID 的内容
- conv-neural-network - 计算给定输入大小的过滤器的数量和大小
- kubernetes - 服务和节点端口的 k8s 1.10 和 1.13 之间有什么区别吗
- python - 如何检索不是由用户创建的对象?
- python - 读取 csv 文件时如何修复非法换行值
- api - 如何获取 Paypal API V2 的交易 ID
- javascript - 将变量传递给 phalcon 的 volt 模板中的函数
- git - 无法推送新的远程存储库
- ag-grid-angular - ag-grid:当单元格背景覆盖时,悬停行样式不起作用