# Настройка видимости

**Visible if** — это функция, которая позволяет **автоматически показывать или скрывать объект** на экране в зависимости от заданных условий.  
Это удобно, когда нужно управлять отображением элементов **без ручного включения или выключения**.

Условия видимости можно настраивать:

- на основе состояния **других объектов на сцене**
- на основе значений из **dh-путей**

Кроме того, вы можете:

- подписываться **сразу на несколько объектов**
- подписываться **сразу на несколько dh-путей**
- **сочетать** оба способа — условия на объекты и на dh-пути работают вместе

> ⚠️ **Важно:** показ или скрытие объекта работает **только в BGE**.  
> В дизайнере на сцене **все объекты отображаются** независимо от заданных условий.

####  

#### Как установить условия видимости 

1. Выберите объект, для которого хотите настроить отображение.
2. В правой панели **«Редактировать объект»** установите галочку **«Виден если»**.
3. После этого станет доступна кнопка **«Виден если»**, при нажатии на которую откроется окно настройки условий.
    
    ![2025-08-04_12-50-39.png](https://yt.fora.sg/api/files/194-1846?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODQ2fEFGdElESzBMZUZyVHZvYzhwajBta3JHTDdGZmRHbW9oVERsaXVlWEZpMEUNCg&updated=1754628744891)![2025-08-04_12-49-54.png](https://yt.fora.sg/api/files/194-1845?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODQ1fFo3T3RJR2U4ejBMSHlBT3hLZFVaS1R3R3BBWUNZYTVMUWlMcGpWeGFINzgNCg&updated=1754628744891)![2025-08-04_12-45-50.png](https://yt.fora.sg/api/files/194-1847?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODQ3fDdHOERyaFFCV0pmZkdqaTNTQUlIdGR2cWRyYk5Uc1ZUb3FURkhpNWkyaHcNCg&updated=1754628744891)

#### Окно настроек условия видимости 

При нажатии на кнопку **«Виден если»** откроется окно в правой части экрана с двумя вкладками:

- **Объекты** — позволяет задать условия на основе других объектов
- **DH** — позволяет задать условия на основе значений из dh-путей
    
    ![2025-08-04_13-02-02.png](https://yt.fora.sg/api/files/194-1848?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODQ4fDlrdUR1Qzd2SWJ0Q3U1TlI2ZjNoazZWcXVMLUU5WV9qZkc3WWJnNzB6NjgNCg&updated=1754628744891)

####  

#### 1. Установка условий видимости на основе другого объекта 

На вкладке **«Объекты»** отображается список всех объектов на сцене с типами **text**, **image** и **video** (кроме самого целевого объекта).

Чтобы использовать объект в качестве условия:

1. Установите галочку рядом с нужным объектом — теперь целевой объект зависит от выбранного объекта
2. Справа от объекта **иконка карандаша** станет доступной — по ней можно настроить конкретное условие
    
    ##### ![2025-08-04_13-08-37.png](https://yt.fora.sg/api/files/194-1849?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODQ5fEhqOS1NZnFSU1BFT0FiOUJwTkNUY2JFWG1OS1FGNHVYb21DMkxKZU50N28NCg&updated=1754628744891)![2025-08-04_13-07-31.png](https://yt.fora.sg/api/files/194-1850?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODUwfFhaOVJ6cERabjlUV19zc01qV1dTaHZxQjVpQUNjQm9PLU5RSWhTZ2pTMkENCg&updated=1754628744891)

##### Настройка условий 

При нажатии на иконку карандаша открывается окно с настройками:

- **Заголовок** — имя объекта, от которого зависит отображение целевого
- **Валидатор** — тип условия (**Равно**, **Не равно**, **Видимость**)
- **Тип данных** — **Строка** (по умолчанию) или **Число**
- **Условие** — значение, которому должен соответствовать `source` или `text` объекта
- **Кнопка «Принять»** — сохраняет указанные условия
    
    ![2025-08-04_13-10-44.png](https://yt.fora.sg/api/files/194-1851?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODUxfGZPNUt3a285UkRKRU5LWVVKdThEbXFFcW4wZllReUtDT0xFYnBPNVhpZjANCg&updated=1754628744891)

Чтобы **отписаться от объекта**, просто **снимите галочку** рядом с его именем в списке.

##### ✅ *Пример №1:* 

**Целевой объект виден, если зависимый объект равен "10"**

Допустим, мы хотим, чтобы объект `target_object` отображался **только тогда**, когда объект `dependent_text` содержит значение `"10"`.

![2025-08-04_13-21-10.png](https://yt.fora.sg/api/files/194-1852?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODUyfGFhcHRFTHF3Y3lWWnVhbFZtTklyeE5RdGxtWncycmptcDRQeW9ISzZqd2MNCg&updated=1754628744891)

##### Что нужно сделать: 

1. У объекта `target_object` включаем чекбокс **«Виден если»**.
2. Нажимаем кнопку **«Виден если»**, чтобы открыть настройки.
3. Во вкладке **«Объекты»** находим и ставим галочку рядом с `dependent_text`.
4. Нажимаем на иконку карандаша справа от него, чтобы настроить условие.
5. В открывшемся окне настраиваем следующее: 
    - **Валидатор**: `Равно`
    - **Тип данных**: `Строка`
    - **Условие**: `10`
6. Нажимаем кнопку **«Принять»**, чтобы сохранить.

Теперь нажимаем кнопку **«Показать сцену»**, и убеждаемся, что `target_object` виден **только тогда**, когда у `dependent_text` значение `"10"`.

![2025-08-04_13-27-16.png](https://yt.fora.sg/api/files/194-1853?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODUzfFRHVU1wT1pXMk9JbkVuaUw5c3gyd1pubEhBOW9rMkc4eHJDTmtVNGVFTlUNCg&updated=1754628744891)![2025-08-04_13-26-21.png](https://yt.fora.sg/api/files/194-1854?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU0fE5YQ0tFVVdjYjR1QnJqYXBISDAwSmw3RGl0blVCZUJfWFkxWW1nX2l0VDANCg&updated=1754628744891)

#####  

##### ✅ *Пример №2:* 

**Целевой объект виден, если виден зависимый объект**

Допустим, мы хотим, чтобы объект `target_object` отображался **только тогда**, когда отображается объект `dependent_text`(Если у него не закрыт глазик и прозрачность не равна 0)

![2025-08-04_13-44-47.png](https://yt.fora.sg/api/files/194-1855?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU1fEtrUWRIdWV4aDR1UkZJalA1UUVxZ2F1cjd3bWxQZVpsdzJONWhYTFdsRjgNCg&updated=1754628744891)

##### Что нужно сделать: 

1. В окне настроек условий для `dependent_text` устанавливаем следующие значения: 
    - **Валидатор**: `Видимость`
    - **Тип данных**: `*не имеет значение*`
    - **Условие**: `*не имеет значение*`
2. Нажимаем кнопку **«Принять»**, чтобы сохранить.

![2025-08-04_13-48-47.png](https://yt.fora.sg/api/files/194-1857?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU3fEh5ektySXpVSDdYSVZtSExvN1ZSSHlVWjRjamtTUGlEdWFvR2ItcDAtZWcNCg&updated=1754628744891)![2025-08-04_13-48-10.png](https://yt.fora.sg/api/files/194-1856?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU2fHkzbjNBZ3RzS2IzQm84dVBxTkNOSHR4dW5rcXF6WklWUXpEd1Iya0ZwMFUNCg&updated=1754628744891)

#### 2. Установка условий видимости на основе dh-пути 

На вкладке **«DH»** отображается список всех **dh-путей**, на которые вы уже подписались.  
Если подписок пока нет, список будет пуст.

![2025-08-04_13-51-18.png](https://yt.fora.sg/api/files/194-1858?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU4fC1nUk80bUJEZl82ZExRc205WlMxX0t1LUlBWk52MWtSb1UyRzRuN29Vd2cNCg&updated=1754628744891)![2025-08-04_13-50-29.png](https://yt.fora.sg/api/files/194-1859?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODU5fHM2Y3ZEYnhiNDZubHFPOFlZd0JsRnI2R0EtbmNnSVF4aXBzZzBnM2xtQXMNCg&updated=1754628744891)

##### Добавление нового dh-пути 

Чтобы добавить новый путь, нажмите кнопку **«Добавить dh-путь»** внизу окна. Откроется окно с настройками, аналогичное настройке условий для объектов.

##### Настройка условий для dh-пути 

В открывшемся окне доступны следующие поля:

- **DH-путь** — путь, на который вы хотите подписаться.
- **Валидатор** — тип условия (например: **Равно**, **Не равно**).
- **Тип данных** — **Строка** (по умолчанию) или **Число**.
- **Условие** — значение, которому должен соответствовать `source` или `text`, полученное по dh-пути.
- **Кнопка «Принять»** — сохраняет и добавляет условие в список.
    
    ![2025-08-04_13-54-46.png](https://yt.fora.sg/api/files/194-1860?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODYwfGxfUl9WMlNBSUJLU2tsVG84OWRHQmpPbnJOX1QwcE0tVXlUdG5kcDFhZ1kNCg&updated=1754628744891)

После создания подписки:

- dh-путь появится в списке вкладки **«DH»**.
- Вы можете включать или выключать подписку, устанавливая или снимая **чекбокс** рядом с путём.
- Для редактирования условий нажмите на **иконку карандаша**.
- Для удаления пути — нажмите на **иконку мусорной корзины**.
    
    ![2025-08-04_13-56-49.png](https://yt.fora.sg/api/files/194-1861?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODYxfG4xX0pFQ0N2OTRtR1RrbUpsdFZ5NG9VeWs0RVVBNy0td1E0TjJjZ2c2NFkNCg&updated=1754628744891)

##### ✅ *Пример №3:* 

**Целевой объект виден, если значение в dh-пути** `"/root/test_dh"` НЕ равно "hide"

![2025-08-04_14-00-56.png](https://yt.fora.sg/api/files/194-1862?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODYyfEc0UlBZNlIxNkxFQ2NQQlk0SHpnNUpnR29TTGJqQ1hZdHdKN0V2TkNLTkkNCg&updated=1754628744891)

##### Что нужно сделать: 

1. У объекта `target_object` включаем чекбокс **«Виден если»**.
2. Нажимаем кнопку **«Виден если»**, чтобы открыть настройки.
3. Во вкладке **«DH»** добавляем dh-путь `"/root/test_dh"` по кнопке "Добавить dh-путь"
4. В открывшемся окне настраиваем следующее: 
    - **Dh-путь**: `/root/test_dh`
    - **Валидатор**: `Не равно`
    - **Тип данных**: `Строка`
    - **Условие**: `hide`
5. Нажимаем кнопку **«Принять»**, чтобы сохранить.

![2025-08-04_14-08-21.png](https://yt.fora.sg/api/files/194-1863?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODYzfGhPR3lIRVpjaFZNSDlLYzNEMlllbjhjZEJ2aW1QbmVZQ2JLZmdNWkoyX0kNCg&updated=1754628744891)![2025-08-04_14-06-08.png](https://yt.fora.sg/api/files/194-1864?sign=MTc3NzA3NTIwMDAwMHwxLTE2fDE5NC0xODY0fHVsRXNlbW82VGpKcVB0VmRBZVFBcjRub2FsSFQxRGJjazdJQm80ZDcwYUkNCg&updated=1754628744891)

####  

#### Когда срабатывает логика **Visible if** 

Логика отображения/скрытия объекта по условиям **Visible if** срабатывает в следующих случаях:

1. **При показе сцены**  
    — условия видимости проверяются при показе сцены в BGE
2. **При показе объекта**  
    — если объект стал видимым, и от него зависят другие объекты, то они тоже автоматически покажутся или скроются в зависимости от заданных условий
3. **При использовании Instant Show**  
    — если объект изменил своё состояние через Instant Show и от него зависят другие объекты, то они тоже автоматически покажутся или скроются в зависимости от заданных условий
4. **При получении данных по dh-пути**  
    — если какой-либо объект подписан на данный dh-путь, то при обновлении значения произойдёт проверка условий и обновление видимости