0

Unity 5.1.1f1 では、スクリプトによって移動するキューブがあります。Rigidbody がそれに接触するたびに、Rigidbody がそのパスの外に移動します。

ただし、一部の状況では、rigidBody が立方体のパスにあり、立方体が Rigidbody を通過して移動します。

たとえば、この写真のように、赤が可動キューブで、グレーが RigidBody です。ここに画像の説明を入力

ご覧のとおり、赤い立方体は灰色のリジッドボディに移動できます。

ソースはこちら

こちらでも質問させていただきました

立方体はスクリプトで動いています -

 transform.position = Vector3.MoveTowards (transform.position, 
 patrolPoints [currentPoint].position, moveSpeed * Time.deltaTime);
4

4 に答える 4

0

この問題は、リジッドボディ (青い立方体) がスリープ状態になるために発生します。これは、GetComponent ().sleepThreshold = -1; を追加することで修正できます。PlayerMovement.cs の Start() メソッドに。

于 2015-07-28T08:04:22.087 に答える
0

正解

申し訳ありませんが、移動しようとしているのがリジッドボディのないオブジェクトであることに気づきませんでした。この場合、Vector3.MoveTowards()またはを使用する必要がある場合は、代わりに関数transform.Translate()内で使用し、 thisの代わりに使用すると、レンダリングされたフレームとは異なる間隔で発生する Unity の物理フレームに同期された増分で動きが配置されます。これはバグではありません。FixedUpdate()Update()Time.fixedDeltaTimeTime.deltaTime

元の回答

他のボディとやり取りしたいリジッドボディを使用したくVector3.MoveTowards()ない。transform.Translate()彼らは、対話なしであなたが彼らに言ったように正確に動きます. rigidbody.AddForce()代わりに使用する必要があります。

于 2015-07-27T13:50:43.023 に答える
0

赤い立方体にrigidBodyを追加すると、問題が解決しました。

この問題ステートメントをユニティ バグに入れる必要がありますか?

于 2015-07-28T01:00:36.853 に答える