Rigidbody2dのMovePositionメソッドにより、Update毎に移動する処理を行ったところ、Gameビューを最大化した場合と通常サイズで実行した場合に移動速度に差が出てしまいます。
処理としては下記のようなUpdate毎にMovePositionを行う単純なものです。
移動速度に影響がある要因が何か処理にありますでしょうか。
private Rigidbody2D playerRb; private float movementSpeed = 100f; private void Awake() { playerRb = GetComponent<Rigidbody2D>(); } private void Update() { playerRb.MovePosition(playerRb.position + Vector2.up * moveMentSpeed * Time.deltaTime); }
【追記】
MovePositionに渡す下記値について、同じポジションまで移動した際のログを取りました。
・playerRb.position
・(Vector2 * moveMentSpeed* Time.deltaTime)の合計値
すると、下記のとおりだいたい同じくらいのポジションに到達時のログを比較すると通常サイズでの実行時にくらべ、最大化での実行時のベクトル量が倍近く大きくなっていることがわかりました。
またどちらにも言えることですが、playerRb.positionのログは変動しないのに対してaddVectorのログは毎回加算された値が出力されているのも気になりました。
MovePositionはUpdate毎に実行されるわけではないということでしょうか?
※MovePositionの実行はFixedUpdate毎の実行が正しいのか?
あなたの回答
tips
プレビュー