unity3d - 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.
推荐阅读
- c - 如何在动态结构变量中分配动态内存?
- vim - 在 VIM 退出时关闭所有 NERDtree 实例
- firebase - Dialogflow webhook 中未调用 Google Cloud 函数
- python - 从 bam 文件中提取行
- javascript - puppeteer 使用 evaluate() 后无法获取页面源
- r - 如何描述 R 中分析中包含的案例?
- javascript - 如何通过Javascript中的特定值循环枚举值
- java - 为什么我的玩家没有被传送到重生点?(java.lang.IllegalArgumentException:location.world)
- ios - 如何使用 Objective-C 将一对多关系数据保存到核心数据中
- c# - 如何在c#中获取层次结构数据