Плавное изменение RectTransform.LocalPosition коротиной

Графический интерфейс пользователя

Плавное изменение RectTransform.LocalPosition коротиной

Сообщение pesiik 03 апр 2017, 23:46

Синтаксис:
Используется csharp
IEnumerator ProgressForFloorIndicator()
    {
        float selectedFloor = Mathf.Abs(divisionOfFloor * (currentFloot - choisesFloor));
        Vector3 v3 = lineFloorRectTransform.transform.localPosition;
        Debug.Log(lineFloorRectTransform.transform.localPosition.x + " begin");
        Vector3 vectorСhanges;


        if (choisesFloor >= currentFloot)
        {
            vectorСhanges = new Vector3(v3.x, v3.y);
            while (lineFloorRectTransform.localPosition.x < v3.x + selectedFloor)
            {
                vectorСhanges = new Vector3(vectorСhanges.x+= 0.01f,vectorСhanges.y);
                lineFloorRectTransform.localPosition = vectorСhanges;
               
            }
            currentFloot = choisesFloor;
        }

        else if(choisesFloor<currentFloot)
        {
            vectorСhanges = new Vector3(v3.x, v3.y);
            while (lineFloorRectTransform.localPosition.x > v3.x - selectedFloor)
            {
                vectorСhanges = new Vector3(vectorСhanges.x -= 0.01f, vectorСhanges.y);
                lineFloorRectTransform.localPosition = vectorСhanges;
            }
            currentFloot = choisesFloor;
        }


как сделать плавное изменение vectorChanges? делал умножением vectorChanges = vectorChanges* 0.9f. Но цикл, естественно становится бесконечным. Я как то делал фейковый лодбар, но там в условии был просто ответ от сервера. А тут как сделать?
pesiik
UNITрон
 
Сообщения: 223
Зарегистрирован: 01 авг 2015, 11:46

Re: Плавное изменение RectTransform.LocalPosition коротиной

Сообщение samana 04 апр 2017, 06:59

pesiik писал(а):как сделать плавное изменение vectorChanges? делал умножением vectorChanges = vectorChanges* 0.9f. Но цикл, естественно становится бесконечным.

А вы в цикле проверяйте на очень близкое значение, например в итоге должно быть 0, а вы проверьте if (vectorChanges<0.01f).
Ещё есть Lerp.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Плавное изменение RectTransform.LocalPosition коротиной

Сообщение djon801 10 апр 2017, 20:21

а что обычным счетчиком менять значение не получается? ну и как выше сказанный ответ проверять ифом когда хватит
Аватара пользователя
djon801
Старожил
 
Сообщения: 506
Зарегистрирован: 03 май 2014, 15:08


Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


cron