如何让Unity中的两个运动对象检测重叠?

问题描述 投票:0回答:1

我正在制作一款非常简单的“游戏”,适合大量玩家。最多 50 名玩家每人用鼠标控制一个对象。当它们让物体接触时,就会发出声音并且它们会发光。球体不必“碰撞”(即它们可以重叠)。但我确实需要检测它们何时接触。

由于它们是由鼠标控制的(例如:它们基本上是 3D 鼠标指针),我认为它们是运动学的是有意义的。由于会有很多并发玩家,我认为让每个玩家在每一帧上进行手动重叠调用不会提高性能。

我想要的是一种让这些运动对象检测到彼此接触的方法。但无论我使用什么设置和组件组合,我都无法使 OnTriggerEnter 或 OnCollider 工作。似乎很久以前我可以让它们同时触发,但这似乎不适用于较新版本的 Unity。

完成我想做的事情的适当方法是什么?

unity-game-engine collision-detection game-physics kinematics
1个回答
0
投票

https://docs.unity3d.com/ScriptReference/Rigidbody-isKinematic.html

如果启用 isKinematic,力、碰撞或关节将不再影响刚体。通过改变transform.position,刚体将完全受到动画或脚本控制。

在这种情况下,适当的方法是不要使用运动学。运动对象的主要目的是制作动画内容。最常见的例子是移动平台。出于您的目的,您应该使用动态对象。

您可以查看 youtube 以获得广泛的答案。有很多视频更广泛地解释了这个主题。例如,这个

© www.soinside.com 2019 - 2024. All rights reserved.