Unity как отключить компонент через скрипт
Перейти к содержимому

Unity как отключить компонент через скрипт

Отключение Игровых Объектов (GameObjects)

Если родительский объект деактивирован, его отключение также перезаписывает опцию activeSelf у всех его дочерних элементов, то есть вся иерархия объектов, от родителя до каждого его потомка, становится неактивной. Однако этот процесс не меняет значения свойства activeSelf у дочерних элементов, они вернутся в первоначальное состояние, как только родитель будет снова активирован. Это значит, что нельзя судить, активирован ли в данный момент объект на сцене, по его свойству activeSelf . Вместо него, нужно использовать свойство activeInHierarchy, которое принимает во внимание эффект перезаписывания от родителя.

Такое перезаписывающее поведение впервые появилось в Unity 4.0. В предыдущих версиях была функция под названием SetActiveRecursively , которую можно было использовать, чтобы активировать или деактивировать потомков данного родительского объекта. Однако эта функция отличалась тем, что параметр активации каждого потомка изменялся — можно было включать или отключать всю иерархию, но потомок не имел возможности “запомнить”, в каком состоянии он был изначально. Чтобы код предыдущих версий продолжал работать, SetActiveRecursively осталась и в API к 4.0, но использовать ее не рекомендуется, функция может быть исключена из API в будущем:-

Enable/disable a GameObject component from a script [Unity3D]

I need to take the value of a boolean (put in a variable called «bouclier») set in one script to enable or disable a GameObject.

The variable is in game object Player (bottom right here):

enter image description here

And I need to enable of disable this game object («Bouclier01»):

enter image description here

To do this, I attached a script to game object «Bouclier01». Here it is:

I must be missing something, because this comes up with this error message:

ACTIVATE and DEACTIVATE GameObjects through CODE in Unity

Introduction – Why activate and deactivate GameObjects?

GameObjects are the objects that can be placed in a scene in Unity, the simplest gameobject has at least a Transform component assigned, that allows to know its position, rotation and scale. You can add components to these GameObjects and give them a more specific behavior. For example, a Camera in Unity is an empty GameObject to which we add the Camera component and the AudioListener component.

When a GameObject is active in the hierarchy and the game is running, Unity periodically updates each of its components and executes some other functions, all this automatically. If we deactivate the GameObject, this process will not take place and we will achieve the effect that the GameObject disappears from the scene.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *