Inputs и Outputs

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Логическая система Ввода/Вывода (Inputs/Outputs) взаимодействия объектов в игре очень полезная особенность игрового движка Source.

Обзор

Энтити имеют два способа взаимодействия друг с другом: отправка "output" (вывода) или принятие "input" (ввода) другой энтити. К примеру игрок нажал на кнопку (func_button) — загорелась синяя лампочка (light); то есть кнопка послала сигнал "аутпут", для лампочки это будет "инпут" ввод — получаемый сигнал. Один аутпут может быть использован для активации нескольких объектов, то есть породить несколько инпутов. Правильно настроенный аутпут объединяется с инпутом в "соединение" которое передаёт дополнительные параметры приёмнику, какова задержка перед тем как отправить аутпут и должен ли будт аутпут послан позже. Аутпут может быть послан любому инпуту и наоборот. Это позволяет создавать сложные и мощьные взаимодействия между энтитями.

Как пример logic_timer может послать OnTimer аутпут, когда истечёт время указанное в таймере. Этот же аутпут может быть направлен — Show инпуту спрайта который станет видимым когда истечёт время. Так же этот аутпут может быть послан SparkOnce инпуту какого-нибудь env_spark росле чего он выпустит искры. Используя параметры соединения вы можете задать задержку перед отправкой аутпута или послать его только один раз.

Для пользователей знакомых с системой взаимодействия энтити первой Half-Life, параметры targetname и target теперь устарели и стали подмножеством системы I/O. Trigger_multiple который мог раньше посылать только однотипный сигнал, теперь имеет несколько вариантов: OnStartTouch, OnEndTouch, OnTouch и т.д. Эти аутпуты могут быть подключены к любому числу энтити и иметь персональные настройки соединения (Delay, Fire once only), использование мульти-менеджеров устарело, теперь они стали частью системы I/O. Параметр killtarget теперь заменён Kill инпутом.

Output

Аутпут — событие которое произойдёт после изменения статуса энтити. Это может быть нажатая кнопка, таймер, закрывашаяся дверь.