【发布时间】:2018-03-13 06:47:53
【问题描述】:
也许我对 OnTriggerEnter 应该如何工作存在误解,但这是我的情况,它与我的预期有何不同。
我创建了一个非常简单的测试项目,只有一个场景。我的场景中有三个对象——玩家、敌人和攻击。敌人和玩家都有刚体和盒子碰撞器,它们都不是触发器。攻击对象有一个盒子对撞机,它是一个触发器。对于脚本,播放器有一个脚本,其中除了将信息记录到控制台的OnTriggerEnter 函数之外什么都没有。敌人有一个简单的脚本,它只是以循环模式启用和禁用攻击对象。启用攻击后,它会与玩家发生碰撞。
带有可克隆项目/代码的 Github:https://github.com/valevalorin/TriggerTest
我预计会发生什么:
攻击对象已启用并与玩家发生碰撞。没有记录控制台输出。玩家对象上没有触发碰撞器,因此永远不应调用它的 OnTriggerEnter。
实际发生的情况:
当攻击对象与玩家发生碰撞时,玩家的OnTriggerEnter 函数被调用并将输出记录到控制台。
据我所知,OnTriggerEnter 应该只在实际具有关联触发器的对象上调用。这不是OnTriggerEnter 的工作原理吗?
【问题讨论】:
标签: c# unity3d collision-detection