Плвное изменение scale

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Плвное изменение scale

Сообщение e-x 28 сен 2022, 19:51

Задача.
По onMouseDown происходит плавное изменение scale куба до заданного значения.
Реализация.
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Force : MonoBehaviour
{
   
    public GameObject cube;
   
    float speedF = 0.01f;
   
    public Vector3 endPos;

    private float _speed;

    private void OnMouseDown()


    {
         cube.transform.localScale = Vector3.Lerp(transform.position, endPos, speedF);
    }
}
 


Итого.Нажимаю кнопку, мой куб мгновенно достигает гиганстких размеров и растет, значение endPos выставленные в инспекторе никак не ограничивают, манипуляции со скоростью никак не изменяют рост Scale.
Помогите плиз.
Спасибо!
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение Alkos26Rus 29 сен 2022, 11:26

Синтаксис:
Используется csharp
cube.transform.localScale = Vector3.Lerp(cube.transform.localScale, endPos, speedF);
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1641
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Плвное изменение scale

Сообщение e-x 29 сен 2022, 12:55

да так по интересней...спасибо...но! чтоб scale доехал до 5 надо постоянно княпать мышкой, а надо раз нажал и скейл медленно (согласно переменной спид) поехал до 5. Как тут быть?
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение Alkos26Rus 29 сен 2022, 14:40

e-x писал(а):да так по интересней...спасибо...но! чтоб scale доехал до 5 надо постоянно княпать мышкой, а надо раз нажал и скейл медленно (согласно переменной спид) поехал до 5. Как тут быть?


перенести Lerp в апдейт и при клике менять endPos, по умолчанию сделай его 1
Синтаксис:
Используется csharp

public class Force : MonoBehaviour
{
   
    public GameObject cube;
   
    float speedF = 0.01f;
   
    public Vector3 endPos;

    private float _speed;

    private void OnMouseDown()


    {
         endPos = new Vector3(5, 5, 5);
    }

void Update(){
cube.transform.localScale = Vector3.Lerp(transform.position, endPos, speedF);
}

}

 
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1641
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Плвное изменение scale

Сообщение e-x 29 сен 2022, 14:56

все тоже самое, кода также работает как и мой вариант.
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение e-x 29 сен 2022, 15:38

все работает, спасибо, я видимо гдето ошибся!
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение e-x 30 сен 2022, 14:12

а как такой же трюк со светом сделать, параметр range

lightT.range = Mathf.Lerp(startRange, endRange, speedRange);

у меня все мгновенно происходит, че плавности нет?)
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение breNnor- 30 сен 2022, 18:48

e-x писал(а):а как такой же трюк со светом сделать, параметр range

lightT.range = Mathf.Lerp(startRange, endRange, speedRange);

у меня все мгновенно происходит, че плавности нет?)


Синтаксис:
Используется csharp
lightT.range = Mathf.Lerp(startRange, endRange, speedRange * Time.deltaTime);


Вот мой спящий НПС с фонариком.
Синтаксис:
Используется csharp
const float CONST_LIGHT_RANGE_SLEEP     = 10f;

if (_sleep == true)
                    _light.range = Mathf.PingPong(Time.time * 5f, CONST_LIGHT_RANGE_SLEEP);
•−−• •−• •• •−− • − −−••−−
Аватара пользователя
breNnor-
UNIт
 
Сообщения: 55
Зарегистрирован: 15 сен 2021, 17:20
Откуда: Тюмень
Skype: Null

Re: Плвное изменение scale

Сообщение Alkos26Rus 30 сен 2022, 20:10

e-x писал(а):а как такой же трюк со светом сделать, параметр range

lightT.range = Mathf.Lerp(startRange, endRange, speedRange);

у меня все мгновенно происходит, че плавности нет?)

первый параметр это текущее значение
Синтаксис:
Используется csharp
lightT.range = Mathf.Lerp(lightT.range, endRange, speedRange);
 
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1641
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Плвное изменение scale

Сообщение e-x 02 окт 2022, 10:54

Спасибо всем за помощь, заработало)
e-x
UNIт
 
Сообщения: 141
Зарегистрирован: 20 июн 2022, 16:47

Re: Плвное изменение scale

Сообщение 1max1 03 окт 2022, 21:21

Ага, на deltaTime только не забывайте умножать в апдейте.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 21