0

いくつかのゲーム オブジェクトを (LeanTween を使用して) トゥイーンしていますが、距離ポイント a と b の間の距離が短い場合、時間を短くしたいと考えています。私は何年も前に自分のフォーラムを書いていましたが、忘れていました(当然)。誰かが私にヒントを与えることができますか?そして、Mathf.Lerpここで(または同様のものは)役に立ちますか?以下を使用すると、まったく逆になります(距離が短くなるほど時間が長くなりますが、これは望ましくありません)..

float time = Mathf.Lerp(source.transform.position.y, target.transform.position.y, Time.time);
4

2 に答える 2

1

私の理解が正しければ、あなたが望むのは一定の速度であり、距離が短いほどオブジェクトがより速く到着します。

float speed = 2f; // 2 units per second

void Update()
{
    Vector3 distance = targetPosition - transform.position;
    float distanceLen = distance.magnitude;

    float stepSize = Time.deltaTime * speed;

    if (stepSize > distanceLen)
        transform.position = targetPosition;
    else
    {
        Vector3 direction = distance.normalized;
        transform.position += direction * stepSize;
    }
}
于 2016-01-03T11:59:55.823 に答える