知りたいこと
単純な質問です。
以前どこかで、Rigidbodyのmassを過剰に大きくしていたら、すなわち質量が大きいものですから動く度に莫大なエネルギーが発生し負荷がかかっていた、という文章を目にした気がします。
現在、Rigidbody2Dでオブジェクトを動かしていて、velocityにVector2.zeroを代入して止まらず、angularVelocityに0を代入して止まらず、質量を大きくすることで解決したのですが、それを必要とするオブジェクトが多いので、無駄に負荷がかかってしまわないか心配です。
質量と負荷とに関係はありますか?
検索しても分からなかったのでここに質問させていただきます。
分かる方いらしたらよろしくお願いします。
私も試したことはありませんし初耳なのですが、テスト用のプロジェクトを作って検証してみるといいと思います。(エディタとビルド後だと動作変わる場合があるので両方で。「unity rigidbody 負荷検証」などでググると出てくるやり方を真似ると良いかと)
(teratailでもまず自分で試してみることが推奨されています→ https://teratail.com/help/question-tips#questionTips3-5-4)
個人的には物理演算の一部の代入値が変わるだけ(動く時のエネルギーを実際に発生させている訳ではない)なので負荷はあまり変わらない気もします(寧ろ動かす内容によっては重い方が早く止まる=早くスリープに入る=早く負荷が下がる、かもしれない)。
なお根本論としては「velocity等に0を代入しても止まらない」という方がおかしいので、「velocity等に0を代入した後も何かの力が加わり続けている」ことが予想されます。ソースを見直した方がいいかもしれません。
申し訳ありません、仰る通り自分で検証すべきでした。
結果は特別負荷はありませんでした。
また親のRigidbody2DにJointした子オブジェクトのRigidbody2Dを失念しており、これを含めてvelocityをVector2.zeroにしたところ解決しました。
回答1件
あなたの回答
tips
プレビュー