Как я могу масштабировать объект, но только в одну сторону и в конечную позицию после масштабирования? - PullRequest
0 голосов
/ 04 апреля 2020

Теперь, если я масштабирую x, например, на 100, он будет масштабироваться в обе стороны на 50. Но я хочу, чтобы он масштабировался на 100 только в одну сторону.

И после того, как масштабирование закончено, как я могу получить последнюю конечную позицию? Если, например, я масштабировал объект по x на 100, а начальная позиция равна 0,0,0, поэтому последняя позиция будет 100,0,0?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DrawLinesAnimated : MonoBehaviour
{
    public Transform objectToScale;

    private void Start()
    {
       StartCoroutine(scaleOverTime(objectToScale, new Vector3(100, 0, 0), 5));
    }

    bool isScaling = false;

    IEnumerator scaleOverTime(Transform objectToScale, Vector3 toScale, float duration)
    {
        //Make sure there is only one instance of this function running
        if (isScaling)
        {
            yield break; ///exit if this is still running
        }
        isScaling = true;

        float counter = 0;

        //Get the current scale of the object to be moved
        Vector3 startScaleSize = objectToScale.localScale;

        while (counter < duration)
        {
            counter += Time.deltaTime;
            objectToScale.localScale = Vector3.Lerp(startScaleSize, toScale, counter / duration);
            yield return null;
        }

        isScaling = false;
    }
}

1 Ответ

1 голос
/ 04 апреля 2020

Таким образом, простым решением было бы создать эту Иерархию StartPoint и EndPoint - просто пустые игровые объекты, а куб - ваш 3d-объект.

Теперь масштабируйте преобразование начальной точки. Убедитесь, что начальная точка и куб имеют одинаковый размер в начале (в данном случае оба 1). При масштабировании начальной точки на оси X куб будет масштабироваться, а конечная точка останется в конце. Таким образом, вы можете просто получить позицию из этого преобразования.

Объект в х = 1

Объект в х = 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...