1

私は 2.5D プラットフォーマーのためにもう一度車輪を再発明しようとしています。

CharacterController でいくつかのことを試しましたが、特に左または右に衝突している場合ではなく、「側面」情報のみを送信します。

だから今、私は RigidBody と OnCollisionEnter() 関数で作業しています

つまり、collision.contacts によって返されるすべてのポイントにはいくつかの優先順位があるようです。これが私がゲームで持っているものです

  • 緑色のボックスは BoxColider です
  • 赤い立方体はcollision.contacts、RigidBody からの衝突時に返された接触点です。

ここに画像の説明を入力

ご覧のとおり、壁に触れても、すべての接点はボックスの「地面」側にあります。

私がジャンプした場合:

ここに画像の説明を入力

空気中なので、それらが必要な場所(ここでは左側)があります。しかし、地面に触れると、返された配列から左/右のポイントがすべて失われます。すべてのポイントは、最初のスクリーンショットに表示されているものに戻ります。

そのため、ボックスの側面 (特に左または右) がいつ触れられたのか、私には何もわかりません。

何か案が ?またはより良い方法?

ありがとう !

4

1 に答える 1

0

私はあなたがあなたのことをやってみることができると思います

OnCollisionStay()

すべての連絡先を取得します。http://unity3d.com/support/documentation/ScriptReference/CharacterController.htmlから

于 2012-06-22T09:28:07.437 に答える