2017-07-28 6 views
0

単に、衝突後に別のオブジェクトからオブジェクトを取り出して移動したいだけです。だから、スクリプトは変換でヒットしたオブジェクトの変換だけを変更します。Unity3d:オブジェクトと衝突してその変換を更新し、すべての剛体属性を失い、オブジェクトを落とす

ここで問題となるのは、シーンの別のオブジェクトに近づくときを除いて、すべてが正常に動作することです。剛体の法則は無視され、通常それが衝突する他のオブジェクトを通過します。

答えて

1

これは、オブジェクトに対して特定の場所に位置するように強制しているため、物理エンジンによって制御される剛体ではなくなりました。 に貼り付けられたオブジェクトは、それ以上前進できなくなってしまい、相互侵入を引き起こすことは考えられません。

あなたは、物理エンジンとなるよう制御オブジェクトの階層にこのオブジェクトのコリジョンボリュームを追加する必要がはそれについて知っているん。

+1

ユニティフィジカルオブジェクトの良い習慣は、ポジションを強制するか物理エンジンを使用して管理するかを知ることです。あなたが選んだもの(と私はいつもエンジンを使う傾向があります)は、それに固執しています。 – Greg

+0

非常に良い点、@ Greg。個人的に私は物理エンジンを使用しない方がいいです(私は、 'AddForce()'を使ってエンティティを信じられないように動かすことは一度もありませんでした、すべてが氷上のように動作します:低加速度、広いコーナー、 – Draco18s

0

私は友人の間で会話していましたが、あなたが示していることは正しいです、それは物理エンジンを無視しています。

誰かがすばらしい作品を使っていることを示す人。

 gameObject.AddComponent<FixedJoint>(); 
     gameObject.GetComponent<FixedJoint>().connectedBody = collision.rigidbody; 
関連する問題