回答編集履歴

6

誤字

2022/02/18 12:36

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -1,6 +1,6 @@
1
1
  transform.DOMoveによる移動ではRigidbody.velocityを測ることはできません。
2
2
  Rigidbody.DOMoveを使ってください。
3
3
 
4
- Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
4
+ Rigidbody.velocityは「Rigidbodyの位置の移動量」です。
5
- transform.DOMoveはTransform(位置)の直接的な書き換え、つまりワープでありRigidbodyにってている訳ではないので取得してもRigidbody.velocity0です。
5
+ transform.DOMoveによる移動はTransform直接書き換えているのでありRigidbody自体は何も起こっていないため、そ速度あるRigidbody.velocityを取得しても0のままです。
6
- Rigidbody.DOMoveを使って移動させれ物理運動となりvelocity動きます。
6
+ Rigidbody.DOMoveならRigidbodyが働くこなりvelocity動きます。

5

内容修正

2022/02/18 12:28

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -1,6 +1,6 @@
1
- transform.domoveによる移動ではRigidbody.velocityを測ることはできません。
1
+ transform.DOMoveによる移動ではRigidbody.velocityを測ることはできません。
2
- Rigidbody.domoveを使ってください。
2
+ Rigidbody.DOMoveを使ってください。
3
3
 
4
4
  Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
5
- Transform.domoveは位置の書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。
5
+ transform.DOMoveはTransform(位置)直接的な書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。
6
- Rigidbody.domoveを使って移動させれば物理運動となりvelocityが動きます。
6
+ Rigidbody.DOMoveを使って移動させれば物理運動となりvelocityが動きます。

4

修正

2022/02/18 12:22

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -1,7 +1,6 @@
1
- DOTweenによる移動ではRigidbody.velocityを測ることはできません。
1
+ transform.domoveによる移動ではRigidbody.velocityを測ることはできません。
2
+ Rigidbody.domoveを使ってください。
2
3
 
3
4
  Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
4
- DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)
5
+ Transform.domoveは位置の書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。
5
-
6
- みにこのVelocityとは「Unit/秒」ですので、移距離を経過時間で割れば同じ値は出せます。
6
+ Rigidbody.domoveを使って移動させれば物理運動とりvelocityます。
7
- 例えば(0,0,0)からtransform.DOMove(new Vector3(9,0,0), 10)で動いたなら、そのTween全体のVelocity(秒速)は(0.9,0,0)ですし、time.deltatimeで前フレームからの移動量を割ればリアルタイムのVelocityが出ます(出せるというだけの話で、それをUpdate内で行って計測しつづけるとかそういうのは全くオススメしません)

3

修正

2022/02/18 10:49

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -1,7 +1,7 @@
1
1
  DOTweenによる移動ではRigidbody.velocityを測ることはできません。
2
2
 
3
- Velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
3
+ Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
4
- DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもVelocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)
4
+ DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)
5
5
 
6
- ちなみにVelocityとは「Unit/秒」ですので、移動距離を経過時間で割れば同じ値は出せます。
6
+ ちなみにこのVelocityとは「Unit/秒」ですので、移動距離を経過時間で割れば同じ値は出せます。
7
7
  例えば(0,0,0)からtransform.DOMove(new Vector3(9,0,0), 10)で動いたなら、そのTween全体のVelocity(秒速)は(0.9,0,0)ですし、time.deltatimeで前フレームからの移動量を割ればリアルタイムのVelocityが出ます(出せるというだけの話で、それをUpdate内で行って計測しつづけるとかそういうのは全くオススメしません)

2

追記

2022/02/18 10:47

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -1,4 +1,4 @@
1
- DOTweenによる移動ではVelocityを測ることはできません。
1
+ DOTweenによる移動ではRigidbody.velocityを測ることはできません。
2
2
 
3
3
  Velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
4
4
  DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもVelocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)

1

2022/02/18 10:45

投稿

UnchFullburst
UnchFullburst

スコア669

test CHANGED
@@ -4,4 +4,4 @@
4
4
  DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもVelocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)
5
5
 
6
6
  ちなみにVelocityとは「Unit/秒」ですので、移動距離を経過時間で割れば同じ値は出せます。
7
- 例えば(0,0,0)からtransform.DOMove(new Vector3(9,0,0), 10)で動いたなら、そのTween全体のVelocity(秒速)は(0.9,0,0)ですし、time.deltatimeでフレームの移動量を割ればリアルタイムの速度が出ます
7
+ 例えば(0,0,0)からtransform.DOMove(new Vector3(9,0,0), 10)で動いたなら、そのTween全体のVelocity(秒速)は(0.9,0,0)ですし、time.deltatimeでフレームからの移動量を割ればリアルタイムのVelocityが出ます(出せるというだけの話で、それをUpdate内で行って計測しつづけるとかそういうのは全くオススメしません)