0
私はこれをIEnumerator
にして、ゲームボードのタイルの特定の場所に移動します。ここにコードは、本当に簡単です。Jerky Lerp motion
IEnumerator LerpToPlayerSpot(Vector3 newPosition, float time)
{
float elapsedTime = 0;
Vector3 startingPos = transform.position;
getInPosFlag = true;
while (elapsedTime < time)
{
transform.position = Vector3.Lerp(startingPos, newPosition, (elapsedTime/time));
elapsedTime += Time.deltaTime;
yield return null;
}
}
私がいる問題は、正しい位置に到達した後、プレイヤーが所定の位置に落ち着くまで少し周りジャークように見えるということです。私は自分の近似を実装することでこれを他のプロジェクトで修正したことを覚えていますが、もっと良い解決策があるのだろうかと思います。
編集。それを私が直した。 getInPosFlag
はwhileループの前に設定する必要があります。私がwhileループの後に設定していたので、コルーチンは必要だったよりも1〜2回多く呼ばれました。
Math.Min((elapsedTime/time), 1)
へ
ありがとうございました。 Math.Minを使って私には何もしなかったが、私はTime.deltaTime –
によってジョルキーな動きをテストした後も、ジョルクはそれほど目立つことはない。 –
"ジャーキー"を定義できますか?それは最後に失敗する?間に? – Gusman