Unity2Dにて2Dオブジェクトを移動させたいと思い、rigidbody2d.MovePositionによって移動が出来るということで以下のようなスクリプトを作りました。
public class Move : MonoBehaviour { private Rigidbody2D rb; private Vector2 position; void Start() { rb = GetComponent<Rigidbody2D>(); } public void Move(float xMovePixel, float yMovePixel) { position = rb.position; position.x += xMovePixel; position.y += yMovePixel; rb.MovePosition(position); } }
このMoveスクリプトを動かしたい2Dオブジェクトにアタッチし、別にアタッチしているキャラクターコントローラースクリプトから移動ピクセル数を指定してMoveメソッドに渡して移動させます。
(右に4ピクセル移動させたい場合はxMovePixelに4.0fを渡します)
実際これで問題なく移動はするのですが、rigidbody2d.MovePositionの使い方を見てみるとピクセル数を指定して加算するのではなく、速度を渡してそこにTime.deltaTimeをかけた距離を加算して動かしています。
ピクセル数の方が分かりやすいと思ったのですが、rigidbody2d.MovePositionを使う際にピクセル数を指定して動かすという考え方は処理的によろしくないでしょうか?
細かい用語の使い方が間違っているかもしれませんが、ご回答の程よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/12 16:57