Передвижение объекта при изменении значения слайдера
Мне нужно, чтобы объект (куб) двигался влево-вправо при изменении (уменьшении-увеличении) значения слайдера снизу.
Не знаю как реализовать.
Ответы (1 шт):
В компоненте Slider установите значение [MaxValue'](https://docs.unity3d.com/ru/530/ScriptReference/UI.Slider-maxValue.html) на 1`.
На кубик повесьте подобный скрипт:
public Vector3 leftPos, rightPos; // Указать из инспектора (или где-либо еще)
public void OnSliderMoved (float value) {
transform.position = Vector3.Lerp(leftPos, rightPos, value);
}
Слайдеру добавьте событие в OnValueChanged. Укажите кубик, выберите скрипт кубика, укажите функцию. Важно выбрать функцию не статическую, а динмическую (в списке функций все динамические будут выше).
Мы используем Vector3.Lerp и телепортируем кубик в указанную позицию. Если необходимо можно просто сохранять целевую позицию в переменную и перемещать туда кубик любым удобным способом: с помощью физики, transform.Translate, анимацией — как угодно.
