微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity 中的对象不会触发,尽管碰撞器和代码是正确的

如何解决Unity 中的对象不会触发,尽管碰撞器和代码是正确的

近一周以来,我一直在测试 Unity 制作游戏。问题如下: 我有一个敌人和一个围绕玩家的圆圈,它们都有一个 IsTrigger 活动的碰撞器。在代码中,有一个针对敌人的 OnTriggerEnter 和 OnTriggerExit 事件。如果敌人进入玩家的圈子,则 bool 为真,其他事情应该发生。但只有这种情况发生: 即使玩家本身没有碰撞器,只有围绕它的圆圈(玩家当然有一个角色),敌人才会进入玩家内部,然后布尔值才变为真(我测试了很多次,就是这样)控制器,但这不能成为触发器,对吗?)

敌人有一个简单的人工智能并且总是朝着玩家的方向走,所以它可能只在他在那里时触发。因为这似乎发生了什么。代码在这里

ftExtra

代码实际上属于吉米维加斯。我正在从他的 YouTube 教程和他的视频中学习它运行良好。这就是为什么我如此困惑。

编辑:敌人无视我的玩家。即使我将碰撞器添加到播放器本身,它也不会触发。如果我关闭了来自敌人的 IsTrigger,他只会让我离开。我不知道这是什么。

解决方法

在编辑器中不要对两个对象都使用 isTrigger。只对一个对象使用它。

,

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerStay.html

" 仅当其中一个碰撞体也附加了刚体时才会发送触发事件 "

两个游戏对象都必须包含一个碰撞器组件。必须启用 Collider.isTrigger,并包含 Rigidbody。

,

尝试使用 void OnTriggerEnter(Collider collider){ ... } 函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。