回答編集履歴
6
誤字
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
transform.DOMoveによる移動ではRigidbody.velocityを測ることはできません。
|
2
2
|
Rigidbody.DOMoveを使ってください。
|
3
3
|
|
4
|
-
Rigidbody.velocity
|
4
|
+
Rigidbody.velocityとは「Rigidbodyの位置の移動量」です。
|
5
|
-
transform.DOMoveはTransform
|
5
|
+
transform.DOMoveによる移動はTransformを直接書き換えているのであり、Rigidbody自体には何も起こっていないため、その速度であるRigidbody.velocityを取得しても0のままです。
|
6
|
-
Rigidbody.DOMove
|
6
|
+
Rigidbody.DOMoveならばRigidbodyが働くことになりvelocityも動きます。
|
5
内容修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
transform.
|
1
|
+
transform.DOMoveによる移動ではRigidbody.velocityを測ることはできません。
|
2
|
-
Rigidbody.
|
2
|
+
Rigidbody.DOMoveを使ってください。
|
3
3
|
|
4
4
|
Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
|
5
|
-
|
5
|
+
transform.DOMoveはTransform(位置)の直接的な書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。
|
6
|
-
Rigidbody.
|
6
|
+
Rigidbody.DOMoveを使って移動させれば物理運動となりvelocityが動きます。
|
4
修正
test
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
1
|
+
transform.domoveによる移動ではRigidbody.velocityを測ることはできません。
|
2
|
+
Rigidbody.domoveを使ってください。
|
2
3
|
|
3
4
|
Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
|
4
|
-
|
5
|
+
Transform.domoveは位置の書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもRigidbody.velocityは0です。
|
5
|
-
|
6
|
-
|
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
修正
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
DOTweenによる移動ではRigidbody.velocityを測ることはできません。
|
2
2
|
|
3
|
-
|
3
|
+
Rigidbody.velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
|
4
|
-
DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得しても
|
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
追記
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
DOTweenによる移動では
|
1
|
+
DOTweenによる移動ではRigidbody.velocityを測ることはできません。
|
2
2
|
|
3
3
|
Velocityが現しているのは「物理運動(Rigidbody)によって起こった物理的な速度」です。
|
4
4
|
DOTweenによる移動はTransform.Positionの書き換え、つまりワープでありRigidbodyによって動いている訳ではないので取得してもVelocityは0です。(今回0ではなかったのは静止していても重力などによって微妙に動いていたからではないでしょうか)
|
1
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内で行って計測しつづけるとかそういうのは全くオススメしません)
|