#c# #unity3d
#c# #unity3d
Вопрос:
Итак, у меня есть скрипт джойстика, подключенный к сборке проигрывателя, и я отключил его, пока мой таймер не равен 0, и снова включил его. Он снова включается, но мой плеер больше не может двигаться, даже если скрипт проверен в инспекторе.
итак, на первом рисунке показано, что джойстик проверен и включен, прежде чем я нажму кнопку запуска игры, которая запустит таймер
на втором рисунке показано, что пока таймер идет, скрипт отключен
и третий показывает, что он снова включен, но, похоже, я не могу заставить свой сборный модуль двигаться. К вашему сведению, он перемещается до того, как я отключу скрипт.
Комментарии:
1. Вы не перемещаете сборные файлы. Вы перемещаете созданные объекты.
Ответ №1:
Это потому, что при его отключении возникают некоторые проблемы с некоторыми переменными или GameObjects, которые, вероятно, обращались к этому скрипту. Например :
public int counter
Если в другом скрипте вы обращаетесь к этому счетчику
Player.counter = n 1;
При отключении скрипта выдается сообщение об ошибке, и даже если вы его повторно включите, он снова не будет работать из-за ошибок. То же самое может произойти для вызываемых сборных, общедоступных функций и так далее.
Вместо отключения этого скрипта вы должны добавить вызываемый bool isTimerZero
и поместить его, например, в раздел movement
if(Input.GetKeyDown("a") amp;amp; isTimerZero == false)
// move the player
else
// don't move it
Таким образом, вы просто измените bool на true, когда таймер равен 0, и это не вызовет проблем
Комментарии:
1. попробую это прямо сейчас и свяжусь с вами. Спасибо!
2. кстати, я не обязательно «перемещаю» сборку. Это должно зависеть от игрока, хочет ли он переместить джойстик или нет, поэтому я думаю, что мне потребуется отключить скрипт джойстика?
3. вам никогда не нужно будет отключать скрипт, даже джойстик использует систему входов внутри скрипта проигрывателя, вам нужно только проверить их, и это будет выглядеть так, как будто он отключен
4. Доступ или установка значения поля / свойства не имеет ничего общего с включенным или отключенным состоянием Unity.. единственное, что это делает, это больше не вызывает
Update
вызовы… вы все равно можете вызывать любой метод или поля доступа, как обычно, для отключенных компонентов…5. да, но система перемещения будет обновлена (), и для нее будут создаваться ошибки @derHugo