Значение ползунка Unity не меняетсяC#

Место общения программистов C#
Ответить
Anonymous
 Значение ползунка Unity не меняется

Сообщение Anonymous »

Я делаю игру, которую нужно запускать в двух экземплярах. Первый экземпляр используется для открытия сцены 1 (экран контроллера), к объекту которой прикреплен этот скрипт:

Код: Выделить всё

public void UpdateTimer()
{
if (timerOn)
{
timeLeft -= Time.deltaTime;
PlayerPrefs.SetFloat("TimeLeft", timeLeft);
}

if(timeLeft Затем сценарий во втором экземпляре запускает этот сценарий для объекта Slider:
[code]void Update()
{
timer.value = PlayerPrefs.GetFloat("TimeLeft", 0);
}
Это работает, когда во втором экземпляре открыта сцена 2 (PartOneOfGame) и таймер срабатывает правильно. Проблема проявляется, когда я загружаю сцену 3 (PartTwoOfGame) (сделано с помощью кнопки с функцией LoadScene), где независимо от того, как я ее тестирую, значение компонента Slider не может быть изменено ни скриптом, ни в редакторе Unity. Это отдельные объекты Slider, к которым прикреплен один и тот же скрипт.
Я попытался поместить часть скрипта в скрипт объекта Slider:

Код: Выделить всё

timeLeft -= Time.deltaTime; PlayerPrefs.SetFloat("TimeLeft", timeLeft);
что временно устранило проблему, но после удаления она не работала.
Я тестировал как в сборках, так и в редакторе. , который дал те же результаты.
Другие попытки включают в себя: копирование сцены, в которой он работает, изменение материала в соответствии со второй сценой (незначительные изменения), переделывание всего холста вручную и добавление что-то в третьей сцене (ничего не делало, ползунок продолжал менять свое значение обратно на максимальное значение, даже debug.log не обнаружил, что я пытался его изменить), разговор с самим собой (нет новых идей), разговор с другими людьми (нет новые идеи), устанавливает начальное значение на 4,76 (оно мгновенно достигло максимального значения и осталось таким).
Думаю, это все мои попытки.
Я хочу, чтобы это работало следующим образом:
При нажатии кнопки таймер начинает обратный отсчет от 10, а ползунок представляет оставшееся время, когда он достигает 0, таймер останавливается и возвращается к 10.
Я думаю, что это как-то связано с ползунком, но сейчас я отчаянно ищу решение. Что может быть причиной проблемы и как ее исправить??

Подробнее здесь: https://stackoverflow.com/questions/785 ... t-changing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»