私は四角いオブジェクトの摩擦がプレイヤーによってプッシュされた後のために作業しています。ブロックの動きは、transform.Translate(ベロシティ)の各フレームとboxCollider2Dのみを使用して、スクリプトを通して純粋に制御されます。私は、ブロックの動きを手動で制御しているため、手動で各フレームがboxcolliders2Dの物理材料の2D摩擦を働かせるように見えない理由があると推測しています。ユニティ2Dスクリプト摩擦式
基本的に、私は剛体に似た組み込みの物理学をtransform.translateを使って再現しようとしています。あるいは可能であれば組み込みの物理を使っています。これまでのところ、私はこのようなものに上陸しました。
newVelocity.x -= (1/(newVelocity.x * newVelocity.x));
速度と各フレームが0になるまで短くするために、フレームを短くしようとしました。明らかに、velocity.xが10進数になると、これは分断されます。私は剛体に似た摩擦を達成するために何をしなければならないのか分かりませんが、最初は少し減速し、その後停止するにつれてはるかに速くなります。すべての助けがありがとう、事前に感謝!
newVelocity.x -= (1/(newVelocity.x * newVelocity.x));
if(Mathf.Sign(previousVelocity.x) != Mathf.Sign(newVelocity.x)) {
newVelocity.x = 0f;
}
一つのことは、しかし、通常のことである。そのような符号変化、とき
、より効率的でしょうか?それはあなたに摩擦、重力などを与えます。 – EvilTak