Изменяем флаги у entity во время игры
Можно ли изменять флаги у entity? Например, в какой-то момент времени сделать объект разбиваемым от прикосновения. Можно! В этом уроке вы узнаете, как это сделать.

Инструкция
Когда я делал свой префаб "суперлифта", у меня возникла проблема с кнопкой: необходимо было отключить возможность нажатий на неё. Можно её заблокировать командой Lock, но в заблокированном состоянии она тоже занята, при нажатии на заблокированную кнопку тоже происходит некоторое событие. Тогда я решил проверить, возможно ли вообще отключить возможность нажатия на кнопку, всего лишь сняв флаг Use Activates прямо во время игры. Результатом получился этот урок и плюс к опыту в создании механизмов.

Так как пример с кнопкой немного сложен и не так необходим, мы рассмотрим объект func_breakable. У меня есть некая неразрушаемая стена в виде func_breakable (чтобы сделать стену неразрушаемой, надо параметр Strenth поставить на 0), флагов у неё, естественно, никаких не стоит:



Но в какой-то момент времени мне надо сделать стену разрушаемой от прикосновения. Допустим, когда кто-то нажал на определённую кнопку. Для этого нужен специальный Output. Чтобы узнать, какой он должен быть, идём к нашей стене и выставляем флаги, которые должны быть после нажатия кнопки:



Затем идём к параметрам, отжимаем кнопку Smart Edit и смотрим значение параметра spawnflags. Запомните его, оно нам пригодится.



Теперь добавляем у кнопки Outputs: OnPressed — wall — AddOutput — spawnflags 2



И когда кто-то нажмёт на кнопку, стена станет разрушаемой от прикосновения. Аналогично можно снимать, ставить флаги абсолютно у любого энтити-объекта, изменяться будет только эта цифра. Кроме флагов можно изменять и другие значения параметров, которые можно увидеть, если отжать кнопку Smart Edit.
Вернуться в каталог уроков