2017-12-09 13 views
0

私はそれが簡単だと思いますが、解決策が見つかりません。私は、プレーヤーが赤い箱と他の青い箱を何度か動かしてもらいたいです。私はプレーヤーが衝突したときにボックスXの位置を固定しようとしましたが、移動するプラットフォームを持っていますので、動作しません。私は質量を増やそうとしましたが、いくつかの状況でも問題があります。逆の力を正確に適用するために、プレーヤーがボックスに加える力を知ることはできますか?あなたは別の考え方をしていますか?オブジェクトが特定のオブジェクトを移動させないようにしますか?

答えて

3

この効果を得るには、位置を固定したり質量を変更したりしないでください。

オブジェクトを別のオブジェクトで移動させたくない場合は、そのオブジェクトでIs Kinematicを有効にします。 docから

Is Kinematic説明:

有効になって、オブジェクトが物理エンジンによって駆動されることはないだろう、と はその変換

public Rigidbody redBoxes; 
public Rigidbody blueBoxes; 

ドン」で操作することができる場合赤と青のボックスを別のオブジェクトで移動する(プレーヤー)

redBoxes.isKinematic = true; 
blueBoxes.isKinematic = true; 

別のオブジェクト(プレーヤー)によって赤と青のボックスの移動を可能

redBoxes.isKinematic = false; 
blueBoxes.isKinematic = false; 
+0

この場合、私は自分自身で箱重力をシミュレートする必要があり、また、ボックスは移動プラットフォーム上にある場合、私がする必要はあり動きをプログラムする。私は、x位置をフリーズし、最後のものだけをシミュレートすることがより良いと思います。とにかくありがとう! –

+1

私は物事をシミュレートすることについてあなたのコメントを理解していません。問題は、オブジェクトが別のオブジェクトを動かすのを防ぐことです。それは 'isKinematic'が使われているものです。あなたはいつでもそれを有効/無効にすることができます。それでおしまい。 Rigidbody変換をフリーズするときに実行する多くの問題があります。しかし、私はそれをやめさせることはできません。あなたの考えが何でもあなたのために働きます。 – Programmer

関連する問題