RigidBody和collision.contacts

时间:2012-06-19 12:32:18

标签: unity3d collision

我正试图再次为2.5D平台重新发明轮子。

我尝试使用CharacterController进行了一些操作,但它只发送了“sides”信息,而不是它是专门向左或向右进行的。

所以现在我正在使用RigidBody和OnCollisionEnter()函数

所以事情是,collision.contacts返回的所有点似乎都有一些优先级。这是我在游戏中的内容

  • 绿色框是BoxColider
  • 红色立方体是来自RigidBody碰撞时返回的collision.contacts的接触点

enter image description here

如你所见,如果我触摸墙壁,所有接触点都位于Box的“地面”侧。

如果我跳:

enter image description here

我有点需要它们(这里是左侧),因为在空中。但是一旦我触地,我就会丢失返回阵列中的所有左/右点。所有要点都回到我们在第一个屏幕截图中看到的内容。

所以当我的侧面(特别是左侧或右侧)触摸Box时,我什么都不知道。

有什么想法吗?还是更好的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你可以尝试用

来做你的事情
OnCollisionStay()

获取所有联系人积分。 来自http://unity3d.com/support/documentation/ScriptReference/CharacterController.html