Setactive unity3d не работает

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).
В чем может быть проблема?

Читайте также:  Панели задач для windows 7 не работает

(SetActive(false) работает хорошо)

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Синхронизация объекта с остальными после его включения через GameObject.SetActive(true)
Доброго времени суток, есть такая проблема, есть несколько объектов, к которым прикреплён один.

не работает SetActive
множество костылей и неопытности дают свое) по заголовку суть понятна, а вот теперь подробнее. есть.

Не работает 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)
Здравствуйте, у меня почему-то в ниже приведенном скрипте не срабатывает SetActive(true).

Метод SetActive для Text
Как мне сделать так, чтобы при вызове метода текст скрывался? public void SelectBoss1() < .

Синхронизация объекта с остальными после его включения через GameObject.SetActive(true)
Доброго времени суток, есть такая проблема, есть несколько объектов, к которым прикреплён один.

GameObject.SetActive(); По нажатию кнопки — появление объекта, при повторном нажатии, исчезание объекта
Привет. Не знаю, как сделать скрипт, который при нажатии кнопки делал GameObject активным , а при.

не пользуюсь я PlayerPrefs но попробую предложить для начала

ну и сделайте код где и чем у вас PlayerPrefs on off устанавливаются, предполагаю что у вас две кнопки он и офф судя из свича и имен объектов разных, вешаете на каждую кнопку отдельный скрипт

как разберетесь сделаете красивее. это так для начала чтоб понять

Добавлено через 14 минут
увидел скриншот с кнопками, если кнопка одна и меняете в ней спрайт с картинкой на он или офф, то вот в те методы где спрайт меняете соответственно вставьте PlayerPrefs.SetString

SetActive() и ошибка !(!IsActive () && !GetRunInEditMode ()
Доброго дня использую метод SetActive() для GameObject’а, по кнопке включаю его и выключаю. И всё.

Мышь работает через раз, то есть запустил ОС — мышь не работает, перезагрузил — мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с.

Читайте также:  Sip не работают исходящие

Не работает скомпилированный 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.

Источник

Оцените статью