2017-11-02 8 views
0

インスタンス化を使用してオブジェクトを生成します。しかし、それが最初に現れたら、それはゆっくりと下降し、次にそれはその最高速度を得る。 2番目の考えでは、物理学が実生活でどのように働くかと思います。しかし、私はそれが産み出されるとすぐに最高速度を得ることを望みます。これも何か可能ですか?私はUnityの物理学を使っています。重力は少し遅れて適用されます。どうして?

+2

実際に私たちに多くのことを与えてくれるわけではありません:-)とにかく遅れてはいけません。体が眠っている可能性があるので、あなたのオブジェクトがインスタンス化されたときに 'Rigidbody :: WakeUp'を呼び出すことができます。私はデバッグのためにunity APIがどのように公開されているのか分かりませんが、剛体の速度がどこに統合されているのか分かっていれば、コールスタックをトレースして問題に戻すことができます。 – George

答えて

0

あなたは、実際の物理エンジンをバイパスしたい場合、すなわち一つの方法を考慮にフレーム間のデルタ時間を取っている間(あなたのオブジェクトのRigidBodykinematicものとしてマークを付け、更新時に手動でオブジェクトのtransform.positionを変えることであろう、非現実的な動作を取得)、一定の速度で下方に移動させる。これは、衝突のような物理エンジンの他の部分と混乱することに注意してください。

物理エンジンを使いたい場合は、すぐに実験して、効果があるかどうかを確認するには、落ちるオブジェクトがインスタンス化されたときにRigidBody.AddForce(0, 0, force, ForceMode.Impulse);のようなものを実行します。 forcefloatであり、力の大きさ、すなわちオブジェクトがどれだけ押し下げられるかを定義する。上記のAddForceへの呼び出しは、z軸が垂直軸であると仮定します。私はUnityのどちらの軸を忘れています。

あなたのユースケースによっては、これがうまくいく可能性があります。あなたのユースケースが何であるか分かりません。たぶん、あなたのスポーンされたオブジェクトが地面に当たったときに跳ね返るのをやめたくないかもしれません。そして、通常のフィギュアと力でそれをバウンスさせます。その場合は、手動で移動してください。

詳細情報here

オブジェクトの倒れが意味をなさない場合を除き、地面に直接スポーンすると考えましたか?

+0

私のための十分な情報。ありがとうございました – klavyeadam

0

剛体の場合は、インスタンス化に力を加えることができます。

+0

デフォルト物理を使用しないでください。彼らはこのように使われることを意図していませんでした。 – Reynevan

関連する問題