如何解决Unity使一个预制件与周围环境发生碰撞,但不会与同一预制件的其他物体发生碰撞
下面的图片是我的模拟,面临的问题是他们不会以我想要的方式发生碰撞。
我让他们随机移动,我想要这种行为。
- 绿色的球应该从外面的灰色墙壁“反弹”,所以要与它们碰撞(模拟物理学)
- 绿色球不应该相互反弹,而只触发事件(所以我知道它们何时在彼此之上)
我该怎么做。我看过多个教程,但我根本不知道该怎么办。据我了解,要发生碰撞,其中一个对象必须具有刚体,而另一个必须是普通对撞机?
我必须尝试遵循此概述。这些球来自同一预制件,因此要触发它们,我必须选择其中一个 静态触发器对撞机,刚体对撞机触发器或运动刚体触发器对撞机(从概览中可以看出)。 但是,如果我选择其中任何一个,我都无法与墙壁碰撞?我必须自己撞墙吗?
解决方法
您可以做的是使所有墙壁成为静态碰撞器,并在所有球上编写脚本以检查它们是否撞到墙壁或球。并以这种方式进行操作。
或
让墙壁检查是否与球发生碰撞,并向它们所产生的负方向施加力(或由物体决定)。(取决于您希望球如何表现)
例如:
OnTriggerEnter(collision other)
if(other.transform.tag == Ball)
//Run Some Code here
// for example
BallRb other.GetComponent<RigidBody>();
BalRb.addForce //add the force that you want.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。