Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.04.2020
Сообщений: 15

При перезапуске сцены, скрипт сохраняет прошлые значения, а не обновляется полностью. Что делать?

04.10.2020, 15:47. Показов 5421. Ответов 4

Студворк — интернет-сервис помощи студентам
Написал небольшой код для того чтобы объекты в течении времени понемногу ускорялись. И вот, при смерти, нажимаю рестарт чтобы перезапустить сцену, а объекты за место того чтобы начать набирать скорость заново они продолжают падать с той же скоростью. Подскажите что можно сделать.
Вот код для объекты который должен понемногу ускоряться:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[SerializeField]
private static float fallSpeed = 3f;
 
void Start()
{
StartCoroutine(Accelerate());
}
IEnumerator Accelerate()
{
while (true)
{
fallSpeed = fallSpeed + 0.01f;
yield return new WaitForSeconds(20f);
}
}
void Update()
{
if (transform.position.y < -6f)
Destroy(gameObject);
 
transform.position -= new Vector3(0, fallSpeed * Time.deltaTime, 0);
}
 
[I][/I]На кнопке рестарт обычный код:
void OnMouseDown()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2020, 15:47
Ответы с готовыми решениями:

Исключение MissingReferenceException при перезапуске сцены
MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it. Your script should...

Ubuntu 18.04.3. Как применить скрипт для обновления iptables при перезапуске системы?
Создаём инициализирующий скрипт с дампом правил iptables: nano /etc/firewall.v4.init Копируем в инициализирующий скрипт правила для...

При нажатии кнопки полностью обновляется страница
У меня есть форма с 2 input'ами и кнопкой. При нажатии кнопки информация из этих инпутов отправляется в БД. Но при этом полностью...

4
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
04.10.2020, 16:57
C#
1
2
3
4
5
6
7
private static float fallSpeed;
 
void Start()
{
fallSpeed = 3f;
StartCoroutine(Accelerate());
}
Добавлено через 4 минуты
Вообще, использование static переменных, когда не понимаете как они работают может приводить к разнообразным глюкам.
0
0 / 0 / 0
Регистрация: 30.04.2020
Сообщений: 15
04.10.2020, 17:46  [ТС]
Пока что только учусь. Сделал как вы и написали, объекты перестали ускоряться. Просто стали постоянно падать с одной и той же скоростью.

Добавлено через 24 минуты
Или можно например какой другой код написать для ускоренного падения?
0
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
04.10.2020, 18:00
Лучший ответ Сообщение было отмечено DicCrow как решение

Решение

Стоп, а этот код на чем висит вообще?
Вообще вынесите эту переменную в любой скрипт, который на сцене есть постоянно.
А то у Вас не очень логично получается.
Ну или если уж прямо не хочется ничего переписывать (хотя выглядит такое решение примитивно):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[SerializeField]
private static float fallSpeed = 3f;
 
void Start()
{
StartCoroutine(Accelerate());
}
IEnumerator Accelerate()
{
while (true)
{
fallSpeed = fallSpeed + 0.01f;
yield return new WaitForSeconds(20f);
}
}
void Update()
{
if (transform.position.y < -6f)
Destroy(gameObject);
 
transform.position -= new Vector3(0, fallSpeed * Time.deltaTime, 0);
}
 
[I][/I]На кнопке рестарт обычный код:
void OnMouseDown()
{
fallSpeed = 3f;
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
Добавлено через 1 минуту
А это случайно не игра с бомбочками по видеоуроку? типа "делаем игру за 40 минут"?

Добавлено через 3 минуты
ну точно, она Я просто прикрутил счетчик очков и уменьшал delay между бомбами в зависимости от счетчика
1
0 / 0 / 0
Регистрация: 30.04.2020
Сообщений: 15
04.10.2020, 18:52  [ТС]
Скрипт висит на префабе объекта. А сама игра по типу видео за 45 минут. Я смотрел это видео, там у него бомбочки падали сверху, а мне нужно вот тоже самое только чтобы со временем их скорость увеличивалась. Не мало времени мучаюсь с этим моментом, что не напишу, либо скорость сохраняется, а не увеличивается, либо при перезапуске сцены(нажав на всплывающую кнопку) скорость сохраняется и дальше продолжает набирать обороты. А мне бы так сделать чтобы при рестарте набранная скорость за прошлый раз сбрасывалась и заново набирала её.

Добавлено через 42 минуты
В общем написал вот такой скрипт и прикрепил его на кнопку рестар и на префаб объекта, вроде всё заработало. Благодарю за выделенное вами мне времени.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[SerializeField]
    public static float fallSpeed = 3f;
    void Start()
    {
        StartCoroutine(Accelerate());
    }
    IEnumerator Accelerate()
    {
        while (!Player.lose)
        {
            fallSpeed = fallSpeed + 1f;
            yield return new WaitForSeconds(5f);
        }
    }
 
    void Update()
    {
        if (transform.position.y < -6f)
            Destroy(gameObject);
        transform.position -= new Vector3(0, fallSpeed * Time.deltaTime, 0);
    }
    public void Button_Restart()
    {
        fallSpeed = 3f;
        SceneManager.LoadScene(SceneManager.GetSceneAt(0).name);       
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2020, 18:52
Помогаю со студенческими работами здесь

Запомнить значения TextBox при перезапуске программы
Есть текст боксы в которые я ввожу значения,они передаются на другую форму и записываются в листбокс.как сделать так чтобы текст бокс...

Запомнить значения RichTextBox при перезапуске программы
Доброго времени суток! Наткнулся на грабли, не могу реализовать сохранение вписанного текста: RichTextBox1 в переменную Adres после нажатия...

Функция rand() выдает одни и те же значения при перезапуске приложения
Привет, товарищи! Столкнулся я с проблемкой, которую никак не получается решить. Гугл не помогает даже) Вот в чем и проблема: rand()...

Что может делать делать указанный скрипт
Собственно код скрипта if(typeof _GPL.ri=='function'&amp;&amp;!_GPL.isIE6){_GPL.ri('_GPL_r')}_GPL.rl=true; Что он может делать? Кому...

Программа создает бинарный файл, но не сохраняет его в формате .bin, что делать?!
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt; #include &lt;locale.h&gt; #include &lt;string&gt; #include &lt;set&gt; void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru