Четверг, 28 Марта 2024, 15:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как отключить скрипт
Как отключить скрипт
QSquirreldДата: Среда, 09 Января 2019, 21:37 | Сообщение # 1
был не раз
Сейчас нет на сайте
Есть скрипт, в котором по таймеру должен отключиться скрипт, но этого не происходит, хотя вроде всё верно. Уже посмотрел пару форумов и видео, но проблему не решил.
Вот код:


P.S. Нуб в этом деле. Возможно ещё подскажете почему не выводит score по середине экрана.
P.P.S shootScr - попытка исправить


Сообщение отредактировал QSquirreld - Среда, 09 Января 2019, 22:09
IrbisДата: Среда, 09 Января 2019, 23:15 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Потому что
Код
if ( timeRemaining == 0 )

а вероятность что при уменьшении на deltaTime вы попадете ровно в 0 ну крайне мала) Замените на:
Код
if ( timeRemaining <= 0 )

или просто на else )

По поводу вывода очков. Этот код:
Код
GUI.Label(new Rect( ...

Нужно писать внутри метода OnGUI()
Но такой подход давно устарел. Изучите новую систему UI.


Сообщение отредактировал Irbis - Среда, 09 Января 2019, 23:17
pontufДата: Среда, 09 Января 2019, 23:15 | Сообщение # 3
был не раз
Сейчас нет на сайте
Не эксперт, но может вместо проверки:
Код
if ( timeRemaining == 0 )

сделать так:
Код
if ( timeRemaining <= 0 )
drcrackДата: Четверг, 10 Января 2019, 00:08 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
или просто на else )

тока тогда будет лаг в 1 фрейм
IrbisДата: Четверг, 10 Января 2019, 00:22 | Сообщение # 5
почетный гость
Сейчас нет на сайте
drcrack, ага) Ну я думаю раз ТС даже забил болт, на то что у него GameOver() вызовется овер 900 раз пока кто-нить не соизволит сцену сменить/скрипт отключить, то пропуск 1 фрейма не критично :D

UPD: Хотя... может так и задумано)


Сообщение отредактировал Irbis - Четверг, 10 Января 2019, 00:27
drcrackДата: Четверг, 10 Января 2019, 00:43 | Сообщение # 6
старожил
Сейчас нет на сайте
Цитата
UPD: Хотя... может так и задумано)

ну да, там ведь GUI.Label :D
PS Rect(Screen.width / 2, Screen.height / 2, 100, 100) — надпись будет выше (или ниже?) и правее центра


Сообщение отредактировал drcrack - Четверг, 10 Января 2019, 00:45
QSquirreldДата: Суббота, 12 Января 2019, 00:47 | Сообщение # 7
был не раз
Сейчас нет на сайте
Цитата Irbis ()
GameOver() вызовется овер 900 раз

А как его можно ограничить?
if ( timeRemaining <= 0 && timeRemaining > -1) ?


Сообщение отредактировал QSquirreld - Суббота, 12 Января 2019, 01:11
drcrackДата: Суббота, 12 Января 2019, 13:19 | Сообщение # 8
старожил
Сейчас нет на сайте
QSquirreld, тебе стоит порешать какие-нибудь задачки по программированию и в частности алгоритмам, ты пока очень плохо понимаешь как вообще твой код работает
условие timeRemaining > -1 не имеет смысла, потому что ты изменяешь timeRemaining только пока оно больше 0, соответственно меньше -1 она может стать только если каким-то образом в последний кадр deltaTime будет больше 1, что маловероятно

можно просто добавить enabled = false; в GameOver, но тогда надо будет не забыть его включить когда он снова понадобится
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как отключить скрипт
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг