Не работает setactive true unity

Не работает SetActive(true)

Здравствуйте, у меня почему-то в ниже приведенном скрипте не срабатывает SetActive(true).
Изначально объект активен. Я его отключаю командой Gun.SetActive(false);
А потом по нажатию на кнопку он должен обратно включиться, НО он не включается и ошибок никаких нет.
Также есть добавить что-то в if (Input.GetKey(KeyCode.B)) — тоже не срабатывает, но если нет строчек SetActive, то срабатывает. Видимо скрипт прекращает выполнение после неудачного SetActive(true).
В чем может быть проблема?

(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.15.40479

Нажимая «Принять все файлы 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 со всеми последними обновлениями. Все всегда замечательно работало. Но с.

Не работает скомпилированный EXE файл хотя в самой среде игра работает
Я почти закончил разработку своей игры на Unity2D но после запуска скомпилированного EXE файла.

Источник

Не работает setactive true unity

NCsoft 11 июл 2014, 20:35

Доброго времени суток !
Подскажите ребята вот такую штучку

у меня на сцене есть несколько GameObject с определёнными именами !
то есть

в общем смотрите , у меня на WindowNoticeFullScreen стоит кнопочка
так вот : как правильно использовать скрипт gameObject.SetActive(false-true);
что бы WindowNoticeFullScreen выключился а WindowLogin включился !
я так понял роль сильно играет в том что они помещены уже во внутрь GameObject
в общем скрипт моей кнопки стандартный

Re: Как использовать gameObject.SetActive(false-true);

Glooger 11 июл 2014, 21:27

public GameObject windowNoticeFullScreen ;
public GameObject windowLogin ;

if ( GUI. Button ( new Rect ( 75, 337, 158, 38 ) , new GUIContent ( «ОТМЕНА» , «SoundButtonOver» ) , ImageButtonCancel ) )
<
AudioSource. PlayClipAtPoint ( SoundButtonClick, transform . position ) ;
windowLogin. SetActive ( true ) ;
windowNoticeFullScreen. SetActive ( false ) ;
>

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 11 июл 2014, 21:31

public GameObject windowNoticeFullScreen ;
public GameObject windowLogin ;

if ( GUI. Button ( new Rect ( 75, 337, 158, 38 ) , new GUIContent ( «ОТМЕНА» , «SoundButtonOver» ) , ImageButtonCancel ) )
<
AudioSource. PlayClipAtPoint ( SoundButtonClick, transform . position ) ;
windowLogin. SetActive ( true ) ;
windowNoticeFullScreen. SetActive ( false ) ;
>

я понял , благодарствую , вот правда такой вопрос :
Оно не влияет на то что GameObject помещён в другой ?
а что если у меня вот такой пример названий обьектов

система же тупонёт и не поймёт какой из них вызывать так ведь ?
или стоит избегать одинаковых неймов гейм обьектов ?

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 11 июл 2014, 21:50

А как выключать и включать void OnGUI () ?

ну то есть у меня вот к примеру 2 OnGUI

void OnGUI ( )
<
GUI. BeginGroup ( new Rect ( 0 , 0 , Screen. width , Screen. height ) , «» , ImageWindow1 ) ;
.
GUI . EndGroup ( ) ;

GUI. BeginGroup ( new Rect ( 0 , 0 , Screen. width , Screen. height ) , «» , ImageWindow1 ) ;
.
GUI . EndGroup ( ) ;
>

можно как то переключать их ?
ну или какой то другой вариант что бы с помощью кнопки выключать или переключать GUI.BeginGroup ?
возможное такое ?
а то с моими потребности прийдётся делать штук 300 GameObject ///

Re: Как использовать gameObject.SetActive(false-true);

Glooger 11 июл 2014, 22:37

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 11 июл 2014, 23:32

ну а как переключаться в скриптах ?
вот допустим я всё запихну в один скрипт все окна свои , к примеру я использую на окна систему GUI.BeginGroup , как их переключать , это возможно ?

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 11 июл 2014, 23:41

Блин смотри ошибку выдаёт
я так понял он не понимает что за GameObject
нужно как то прописать его что бы он понимал их

public class WindowNoticeFullScreen : MonoBehaviour
<
public GUIStyle ImageBackground ;
public GUIStyle ImageWindow ;
public GUIStyle ImageButton ;

void OnGUI ( )
<
GUI. Box ( new Rect ( 0 , 0 , Screen. width , Screen. height ) , «» , ImageBackground ) ;
GUI. BeginGroup ( new Rect ( Screen. width / 2 — 250, Screen. height / 2 — 200, 500, 400 ) , ImageWindow ) ;
if ( GUI. Button ( new Rect ( 75, 337, 158, 38 ) , new GUIContent ( «ОТМЕНА» , «SoundButtonOver» ) , ImageButton ) )
<
WindowNoticeFullScreen. SetActive ( false ) ;
WindowLogin. SetActive ( true ) ;
>
GUI. EndGroup ( ) ;
>
>

вот какую ошибку он выдаёт

что я не так сделал ?

Re: Как использовать gameObject.SetActive(false-true);

Glooger 11 июл 2014, 23:56

булевыми переменными или чем то подобным.

Компилятор тебе говорит что не так. Ты обращаешься к переменной, которой нет.
Это форум по определенному движку, а не программированию. Не в обиду, ты не понимаешь элементарные вещи. Изучи с# нормально.

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 12 июл 2014, 00:00

булевыми переменными или чем то подобным.

Компилятор тебе говорит что не так. Ты обращаешься к переменной, которой нет.
Это форум по определенному движку, а не программированию. Не в обиду, ты не понимаешь элементарные вещи. Изучи с# нормально.

Да вот в этом и дело что c# начинаю учить ну и по пути за одно и пробываю проектики клепашить , вот и застрял на этом а так по сути всё остальное по учебникам и мануалам !
Но всё равно благодарствую ! буду тыкать , может и получиться , а то ни инфы отчётливой , ни видеоуроков этой функции , а GameObject.Find я вообще не вкурю как в нём использовать true или false )

А если серьёзно , я уже голову сломал , ни нагуглить ни спросить скрипт запуска обьекта через кнопку НЕ МОГУ НИГДЕ НАЙТИ .

Re: Как использовать gameObject.SetActive(false-true);

Glooger 12 июл 2014, 00:33

//тот самый go
public GameObject go ;

if ( GUI. Button ( new Rect ( 75 , 337 , 158 , 38 ) , «Вкл/Выкл» , ImageButtonCancel ) )
<
go. SetActive ( ! go. activeSelf ) ;
>

go обозначь в Инспекторе, передащив на переменную go нужный объект.

Re: Как использовать gameObject.SetActive(false-true);

NCsoft 12 июл 2014, 10:08

Glooger — Благодарствую Вас из действительности от всей души , в долгу не останусь !

go обозначь в Инспекторе, передащив на переменную go нужный объект.[/quote]

public GameObject WindowNoticeFullScreen ;
public GameObject WindowLogin ;

if ( GUI. Button ( new Rect ( 75, 337, 158, 38 ) , new GUIContent ( «ОТМЕНА» , «SoundButtonOver» ) , ImageButtonCancel ) )
<
AudioSource. PlayClipAtPoint ( SoundButtonClick, transform . position ) ;
WindowLogin. SetActive ( true ) ;
WindowNoticeFullScreen. SetActive ( false ) ;
>

оказывается вся проблема была в том что мне наверное стоит научиться читать внимательней
ведь из действительности второй пост был ответом на мой вопрос , а я пропустил public GameObject _NameScene_;

Вот теперь и понял ошибку из логера , ведь он не телепат и не понимал что такое WindowLogin и WindowNoticeFullScreen .

//тот самый go
public GameObject go ;

if ( GUI. Button ( new Rect ( 75 , 337 , 158 , 38 ) , «Вкл/Выкл» , ImageButtonCancel ) )
<
go. SetActive ( ! go. activeSelf ) ;
>

а вот этот скрипт меня тоже очень порадывал , благодарствую

правда я заметил что когда одновремено на сцене 2 GameObject то они друг друга перекрывают
то есть обосную :

Login — содержит верхние бордюры и бекграунд
WindowLogin — содержит всего лишь окно Авториации
WindowNoticeFullScreen — содержит окно с вопросом открыть ли игру на весь экран
так вот , даже если WindowNoticeFullScreen включён , Login всё равно поверх его и WindowNoticeFullScreen не видно , вот и приходиться выключать все обьекты а WindowNoticeFullScreen включать
в принцепи всё логично , НО , приходиться во все скрипты окон прописывать и бордюры и бекграунт что повторяет много раз один и тот же код

Но в принцепи я подумал что можно написать отдельно скрипт к примеру Interface.sc и в него забить то что мне нужно и его уже позакидывать на все обьекты .

Как думаешь это нормальный вариант выхода из моей проблемы ?

Да и есть ли в юнити возможность выключать определённые скрипты на GameObject ?
Этой информации не могу ни на вики ни на форуме найти , ну или не правильно ищу

ну а так повторюсь , Очень Очень благодарствую за помощь !

Источник

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.

Источник

Читайте также:  Как настроить список покупок
Оцените статью