Материалы
10 лет назад
Изменяем флаги у энтитей во время игры
Можно ли изменять флаги у энтитей? Например, в какой-то момент времени сделать объект разбиваемым от прикосновения. Можно! В этом уроке Вы узнаете, как!
Когда я делал свой префаб "суперлифта", у меня возникла проблема с кнопкой: необходимо было отключить возможность нажатий на неё. Можно её заблокировать командой
Lock, но в заблокированном состоянии она тоже занята, при нажатии на заблокированную кнопку тоже происходит некоторое событие. Тогда я решил проверить, возможно ли вообще отключить возможность нажатия на кнопку, всего лишь сняв флаг
Use Activates прямо во время игры. Результатом получился этот урок и плюс к опыту в создании механизмов.
Так как пример с кнопкой немного сложен и не так необходим, мы рассмотрим объект
func_breakable. У меня есть некая неразрушаемая стена в виде
func_breakable (чтобы сделать стену неразрушаемой, надо параметр
Strenth поставить на 0), флагов у неё, естественно, никаких не стоит:
Но в какой-то момент времени мне надо сделать стену разрушаемой от прикосновения. Допустим, когда кто-то нажал на определённую кнопку. Для этого нужен специальный оутпут. Чтобы узнать, какой он должен быть, идём к нашей стене и выставляем флаги, которые должны быть после нажатия кнопки:
Затем идём к параметрам, отжимаем кнопку
Smart Edit и смотрим значение параметра
spawnflags. Запомните его, оно нам пригодится.
Теперь добавляем у кнопки оутпут:
OnPressed - wall - AddOutput - spawnflags 2, где wall - имя стены, а цифра 2 - значение, которое Вы запомнили на предыдущем шаге.
И когда кто-то нажмёт на кнопку, стена станет разрушаемой от прикосновения. Аналогично можно снимать, ставить флаги абсолютно у любого энтити-объекта, изменяться будет только эта цифра. Кроме флагов можно изменять и другие значения параметров, которые можно увидеть, если отжать кнопку
Smart Edit.
Комментарии пользователей сайта:
Пробую аналогично сделать с объектом func_movelinear (поскольку для него можно отключить модель столкновении), в строке spawnflags при включенном флаге стоит 8. ввожу OnPressed - "имя объекта" - AddOutput - spawnflags 8, флаг не меняется (пройти нельзя).
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: