- SetActive (true) не работает внутри сопрограммы
- 2 ответа
- Не работает SetActive(true)
- SetActive. Объясните, почему не работает?
- 2 ответа 2
- Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# unity3d или задайте свой вопрос.
- Похожие
- Подписаться на ленту
- не работает SetActive
- GameObject.SetActive
- Success!
- Submission failed
- Declaration
- Parameters
- Description
SetActive (true) не работает внутри сопрограммы
Я использую сопрограммы для управления перезарядкой бонусов в моей игре. Когда игрок сталкивается с powerup, он получает эффект, и начинается перезарядка, поэтому они не могут использовать его снова в течение определенного времени.
Я использую сопрограммы для управления этими перезарядками — устанавливаю для gameObject значение false, ожидаю перезарядки, а затем возвращаю gameObject значение true.
Тем не менее, gameObject никогда не активируется снова после отключения. Я не думаю, что проблема с выходом, поскольку комментирование операторов SetActive приводит к тому, что оба сообщения отладки отображаются в правильное время.
Извините, я не уточнил. Я знаю, что сопрограммы не работают с ограниченными возможностями GameObjects . Я написал скрипт PowerUpManager , и он не сработал. Код:
В сценарии PowerUp , в методе OnCollisionEnter2D
В сценарии PowerUpManager
2 ответа
Сопрограммы не запускаются на отключенных игровых объектах!
Вы должны запустить это на другом игровом объекте.
Если вы деактивируете игровой объект, все его компоненты также будут отключены, поэтому Coroutine перестает вызываться.
Что вы можете сделать, это разделить сопрограмму для охлаждения и скрипт, который проверяет столкновение, в 2 отдельных скрипта.
Давайте назовем Cooldown.cs и Powerup.cs . Затем сделайте так, чтобы они перекрестно ссылались друг на друга. В powerup.cs у вас есть
Таким образом, вы не отключаете весь объект, а только скрипт, который проверяет наличие коллизий.
Источник
Не работает SetActive(true)
Здравствуйте, у меня почему-то в ниже приведенном скрипте не срабатывает SetActive(true).
Изначально объект активен. Я его отключаю командой Gun.SetActive(false);
А потом по нажатию на кнопку он должен обратно включиться, НО он не включается и ошибок никаких нет.
Также есть добавить что-то в if (Input.GetKey(KeyCode.B)) — тоже не срабатывает, но если нет строчек SetActive, то срабатывает. Видимо скрипт прекращает выполнение после неудачного SetActive(true).
В чем может быть проблема?
(SetActive(false) работает хорошо)
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Синхронизация объекта с остальными после его включения через GameObject.SetActive(true)
Доброго времени суток, есть такая проблема, есть несколько объектов, к которым прикреплён один.
не работает SetActive
множество костылей и неопытности дают свое) по заголовку суть понятна, а вот теперь подробнее. есть.
Столкнулся с проблемой, скрипт висит на игроке и когда он сталкивается с другим объектом игра.
Свойства контрола webbrowser: addressbar:true, statusbar:true, menubar:true
Я чайник, конечно, но. решил и я свой броузер написать 🙂 Беру контрол webbrouser, кидаю его на.
Источник
SetActive. Объясните, почему не работает?
Вот есть код. Когда нажиму на клавишу, куб должен появляться, а когда отпускаю пропадать, но ничего не выходит.
Я проверял с помощью debug.log и часть где нажимается левая или правая кнопка мыши и выполняется действие — НЕ РАБОТАЕТ. Почему? Объясните пожалуйста.
2 ответа 2
Вероятнее всего на момент запуска сцены ваш «killcube» уже отключен. Unity не может получать GameObject и его компоненты, если тот отключен SetActive(false) ‘
Чтобы всё заработало, вы должны заранее получить ссылку на ваш GameObject hitb . Проще говоря, в начале получите ещё включённый «killcube» , а потом отключите его методом SetActive(false) .
А, и использование команды GameObject.Find(string name) не выгодно со стороны производительности, легче было перенести ваш объект напрямую в UnityEditor-е.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# unity3d или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.18.40487
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник
не работает SetActive
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Здравствуйте, у меня почему-то в ниже приведенном скрипте не срабатывает SetActive(true).
Как мне сделать так, чтобы при вызове метода текст скрывался? public void SelectBoss1() < .
Синхронизация объекта с остальными после его включения через GameObject.SetActive(true)
Доброго времени суток, есть такая проблема, есть несколько объектов, к которым прикреплён один.
Привет. Не знаю, как сделать скрипт, который при нажатии кнопки делал GameObject активным , а при.
не пользуюсь я PlayerPrefs но попробую предложить для начала
ну и сделайте код где и чем у вас PlayerPrefs on off устанавливаются, предполагаю что у вас две кнопки он и офф судя из свича и имен объектов разных, вешаете на каждую кнопку отдельный скрипт
как разберетесь сделаете красивее. это так для начала чтоб понять
Добавлено через 14 минут
увидел скриншот с кнопками, если кнопка одна и меняете в ней спрайт с картинкой на он или офф, то вот в те методы где спрайт меняете соответственно вставьте PlayerPrefs.SetString
SetActive() и ошибка !(!IsActive () && !GetRunInEditMode ()
Доброго дня использую метод SetActive() для GameObject’а, по кнопке включаю его и выключаю. И всё.
Мышь работает через раз, то есть запустил ОС — мышь не работает, перезагрузил — мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с.
Не работает скомпилированный EXE файл хотя в самой среде игра работает
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла.
Источник
GameObject.SetActive
Success!
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
Submission failed
For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
Declaration
Parameters
| value | Activate or deactivate the object, where true activates the GameObject and false deactivates the GameObject. |
Description
Activates/Deactivates the GameObject, depending on the given true or false value.
A GameObject may be inactive because a parent is not active. In that case, calling SetActive will not activate it, but only set the local state of the GameObject, which you can check using GameObject.activeSelf. Unity can then use this state when all parents become active.
Deactivating a GameObject disables each component, including attached renderers, colliders, rigidbodies, and scripts. For example, Unity will no longer call the Update() method of a script attached to a deactivated GameObject. OnEnable or OnDisable are called as the GameObject received SetActive(true) or SetActive(false) .
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Copyright ©2021 Unity Technologies. Publication Date: 2021-10-08.
Источник