2017-11-29 9 views
0

スプリングジョイントに関して助けが必要です。私はゲームを作ろうとしています。私が戻ってドラッグすると、gameObjectはAngry Birdsのように飛んでいくはずです(少し異なります)。違いは、私は戻ってドラッグすると、バネジョイントに接続されたgameObjectが動かないようにすることです。しかし、私がリリースすると、gameObjectはドラッグしたように動くはずです。次の方法でUnityでSpringジョイントを実装する方法は?

+0

ジョイントが必要なくても正しく理解していれば、オブジェクトを解放するときにオブジェクトを飛ばすだけでよいです。 – Lestat

+0

はい。あなたが正しい! – Aravind

答えて

0

カスタムスプリングを作成できます。ばね力は静止点からの距離に比例する。だからあなたの力はおおよそ

だろう[擬似コード]

フォース係数*(PositionOfMouse-PositionOfRestingPointを)=ので計算し、オブジェクトを移動しないように

Rigidbodyofobject.addforce(結果)

を.magnitudeオブジェクトに対するマウスの位置(おそらく、マウスドラッグ中に平面にレイキャストする必要があります)は、マウスポイントがオブジェクトのように力を計算します。実際にはオブジェクトを動かさないでください。その後、実際の物体にばね力を加えます。

ばねの張力を表す力を変更するには、ある種の係数を追加する必要があります。

次に、リリースしてから短時間で春をオフにするスクリプトが必要です()。

+1

実世界の物理学では、ばね力は単純に休止点までの距離に比例し、二乗ではありません。 https://en.wikipedia.org/wiki/Hooke%27s_law – Pac0

+0

ああ!確かに。私は私の方程式を混ぜ合わせました。編集されました。ありがとうございました。 –

+0

ドラッグして戻すとオブジェクトを飛ばすことができます。しかし、私は戻ってドラッグするときにオブジェクトを元に戻したくない。私はそれをドラッグしている間、私の手(またはマウス)だけを後退させるべきです。 – Aravind

関連する問題