У меня есть короткий скрипт, прикрепленный к Text-Gameobject, который устанавливает текст для отображения текущего значения / положения слайдера. Этот текстовый игровой объект прикрепляется к ползункам по значению измененного поля: ShowSliderValue -> [Dynami c float] TextUpdate
Когда я нажимаю кнопку «Воспроизвести», в моем тексте не сразу отображается выбранное значение / позиция. Только когда я меняю положение ползунка, текст меняется с «Новый текст» на фактическое значение моего ползунка. Технически я хочу запустить «On Value Changed», когда я нажимаю play. Таким образом, я могу избежать любых ненужных зависимостей в моем скрипте.
using UnityEngine;
using UnityEngine.UI;
public class ShowSliderValue : MonoBehaviour
{
private Text text;
void Awake()
{
text = this.GetComponent<Text>();
}
public void TextUpdate(float value)
{
text.text = value.ToString("0.00");
}
}
При поиске решения я нашел следующее видео. В 5:06 (до 5:26) они устанавливают значение по умолчанию от 1 до 30, и это, кажется, работает прямо из коробки. Нажмите здесь для ссылки на YouTube.
Можно ли в моем тексте отобразить значение ползунка без предварительного перемещения ползунка или без активного запроса значения ползунка в показанном скрипте?
Редактировать:
Вот мое текущее решение: я добавляю скрипт к своему ползунку, который изменяет значение ползунка при запуске (). Поскольку значение должно действительно измениться, slider.value = slider.value не работает.
using UnityEngine;
using UnityEngine.UI;
public class SliderTest : MonoBehaviour
{
private void Start()
{
Slider slider = this.GetComponent<Slider>();
float originalValue = slider.value;
slider.value = slider.maxValue;
slider.value = slider.minValue;
slider.value = originalValue;
}
}
Это гарантирует, что изменение значения произойдет. Если minValue = maxValue - что делает ползунок в любом случае устаревшим.