Input

Наследует: Object

Синглтон для обработки входных данных.

Описание

Синглтон Input обрабатывает нажатия клавиш, кнопки мыши и движение, геймпады и действия ввода. Действия и их события можно задать на вкладке Input Map в Project > Project Settings или с помощью класса InputMap.

Примечание: Методы Input отражают глобальное состояние ввода и не зависят от Control.accept_event() или Viewport.set_input_as_handled(), поскольку эти методы имеют дело только со способом распространения ввода в SceneTree.

Обучающие материалы

Свойства

bool

emulate_mouse_from_touch

bool

emulate_touch_from_mouse

MouseMode

mouse_mode

bool

use_accumulated_input

Методы

void

action_press(action: StringName, strength: float = 1.0)

void

action_release(action: StringName)

void

add_joy_mapping(mapping: String, update_existing: bool = false)

void

flush_buffered_events()

Vector3

get_accelerometer() const

float

get_action_raw_strength(action: StringName, exact_match: bool = false) const

float

get_action_strength(action: StringName, exact_match: bool = false) const

float

get_axis(negative_action: StringName, positive_action: StringName) const

Array[int]

get_connected_joypads()

CursorShape

get_current_cursor_shape() const

Vector3

get_gravity() const

Vector3

get_gyroscope() const

float

get_joy_axis(device: int, axis: JoyAxis) const

String

get_joy_guid(device: int) const

Dictionary

get_joy_info(device: int) const

String

get_joy_name(device: int)

float

get_joy_vibration_duration(device: int)

Vector2

get_joy_vibration_strength(device: int)

Vector2

get_last_mouse_screen_velocity()

Vector2

get_last_mouse_velocity()

Vector3

get_magnetometer() const

BitField[MouseButtonMask]

get_mouse_button_mask() const

Vector2

get_vector(negative_x: StringName, positive_x: StringName, negative_y: StringName, positive_y: StringName, deadzone: float = -1.0) const

bool

has_joy_light(device: int) const

bool

is_action_just_pressed(action: StringName, exact_match: bool = false) const

bool

is_action_just_pressed_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const

bool

is_action_just_released(action: StringName, exact_match: bool = false) const

bool

is_action_just_released_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const

bool

is_action_pressed(action: StringName, exact_match: bool = false) const

bool

is_anything_pressed() const

bool

is_joy_button_pressed(device: int, button: JoyButton) const

bool

is_joy_known(device: int)

bool

is_key_label_pressed(keycode: Key) const

bool

is_key_pressed(keycode: Key) const

bool

is_mouse_button_pressed(button: MouseButton) const

bool

is_physical_key_pressed(keycode: Key) const

void

parse_input_event(event: InputEvent)

void

remove_joy_mapping(guid: String)

void

set_accelerometer(value: Vector3)

void

set_custom_mouse_cursor(image: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0))

void

set_default_cursor_shape(shape: CursorShape = 0)

void

set_gravity(value: Vector3)

void

set_gyroscope(value: Vector3)

void

set_joy_light(device: int, color: Color)

void

set_magnetometer(value: Vector3)

bool

should_ignore_device(vendor_id: int, product_id: int) const

void

start_joy_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0)

void

stop_joy_vibration(device: int)

void

vibrate_handheld(duration_ms: int = 500, amplitude: float = -1.0)

void

warp_mouse(position: Vector2)


Сигналы

joy_connection_changed(device: int, connected: bool) 🔗

Издается при подключении или отключении джойстика.


Перечисления

enum MouseMode: 🔗

MouseMode MOUSE_MODE_VISIBLE = 0

Делает курсор мыши видимым, если он скрыт.

MouseMode MOUSE_MODE_HIDDEN = 1

Делает курсор мыши скрытым, если он виден.

MouseMode MOUSE_MODE_CAPTURED = 2

Захватывает мышь. Мышь будет скрыта, а ее положение зафиксировано в центре окна менеджера окон.

Примечание: Если вы хотите обрабатывать движение мыши в этом режиме, вам нужно использовать InputEventMouseMotion.relative.

MouseMode MOUSE_MODE_CONFINED = 3

Ограничивает курсор мыши окном игры и делает его видимым.

MouseMode MOUSE_MODE_CONFINED_HIDDEN = 4

Ограничивает курсор мыши окном игры и делает его скрытым.

MouseMode MOUSE_MODE_MAX = 5

Максимальное значение MouseMode.


enum CursorShape: 🔗

CursorShape CURSOR_ARROW = 0

Курсор-стрелка. Стандартный, указывающий курсор по умолчанию.

CursorShape CURSOR_IBEAM = 1

Курсор в виде I-образной линии. Обычно используется для указания того, где появится текстовый курсор при щелчке мыши.

CursorShape CURSOR_POINTING_HAND = 2

Курсор в виде указывающей руки. Обычно используется для обозначения того, что указатель находится над ссылкой или другим интерактивным элементом.

CursorShape CURSOR_CROSS = 3

Перекрестный курсор. Обычно появляется над областями, в которых можно выполнить операцию рисования или для выделения.

CursorShape CURSOR_WAIT = 4

Курсор ожидания. Указывает, что приложение занято выполнением операции и что оно не может быть использовано во время операции (например, что-то блокирует его основной поток).

CursorShape CURSOR_BUSY = 5

Занятый курсор. Указывает, что приложение занято выполнением операции и что оно все еще может использоваться во время операции.

CursorShape CURSOR_DRAG = 6

Курсор перетаскивания. Обычно отображается при перетаскивании чего-либо.

Примечание: В Windows отсутствует курсор перетаскивания, поэтому CURSOR_DRAG совпадает с CURSOR_MOVE для этой платформы.

CursorShape CURSOR_CAN_DROP = 7

Можно отпустить курсор. Обычно отображается при перетаскивании чего-либо, чтобы указать, что его можно отпустить в текущей позиции.

CursorShape CURSOR_FORBIDDEN = 8

Запрещенный курсор. Указывает, что текущее действие запрещено (например, при перетаскивании чего-либо) или что элемент управления в позиции отключен.

CursorShape CURSOR_VSIZE = 9

Вертикальное изменение размера курсора мыши. Двунаправленная вертикальная стрелка. Сообщает пользователю, что он может изменять размер окна или панели по вертикали.

CursorShape CURSOR_HSIZE = 10

Курсор мыши для изменения размера по горизонтали. Двунаправленная горизонтальная стрелка. Сообщает пользователю, что он может изменять размер окна или панели по горизонтали.

CursorShape CURSOR_BDIAGSIZE = 11

Курсор мыши для изменения размера окна. Курсор представляет собой двунаправленную стрелку, которая идет из нижнего левого угла в верхний правый угол. Он сообщает пользователю, что он может изменять размер окна или панели как по горизонтали, так и по вертикали.

CursorShape CURSOR_FDIAGSIZE = 12

Курсор мыши для изменения размера окна. Курсор — это двунаправленная стрелка, которая идет из верхнего левого угла в нижний правый угол, противоположность CURSOR_BDIAGSIZE. Он сообщает пользователю, что он может изменять размер окна или панели как по горизонтали, так и по вертикали.

CursorShape CURSOR_MOVE = 13

Переместить курсор. Указывает, что что-то можно переместить.

CursorShape CURSOR_VSPLIT = 14

Вертикальный разделенный курсор мыши. В Windows это то же самое, что CURSOR_VSIZE.

CursorShape CURSOR_HSPLIT = 15

Горизонтальный разделенный курсор мыши. В Windows это то же самое, что CURSOR_HSIZE.

CursorShape CURSOR_HELP = 16

Курсор помощи. Обычно вопросительный знак.


Описания свойств

bool emulate_mouse_from_touch 🔗

  • void set_emulate_mouse_from_touch(value: bool)

  • bool is_emulating_mouse_from_touch()

Если true, отправляет события ввода мыши при нажатии или пролистывании на сенсорном экране. См. также ProjectSettings.input_devices/pointing/emulate_mouse_from_touch.


bool emulate_touch_from_mouse 🔗

  • void set_emulate_touch_from_mouse(value: bool)

  • bool is_emulating_touch_from_mouse()

Если true, отправляет события сенсорного ввода при щелчке или перетаскивании мыши. См. также ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.


MouseMode mouse_mode 🔗

Управляет режимом мыши.


bool use_accumulated_input 🔗

  • void set_use_accumulated_input(value: bool)

  • bool is_using_accumulated_input()

Если true, накапливаются похожие события ввода, отправленные операционной системой. Когда накопление ввода включено, все события ввода, сгенерированные во время кадра, будут объединены и отправлены, когда кадр завершит рендеринг. Таким образом, это ограничивает количество вызовов методов ввода в секунду до FPS рендеринга.

Накопление ввода можно отключить, чтобы получить немного более точный/реактивный ввод за счет увеличения загрузки ЦП. В приложениях, где требуется рисовать линии от руки, накопление ввода обычно следует отключать, пока пользователь рисует линию, чтобы получить результаты, которые точно соответствуют фактическому вводу.

Примечание: Накопление ввода включено по умолчанию.


Описания метода

void action_press(action: StringName, strength: float = 1.0) 🔗

Это сымитирует нажатие указанного действия.

Силу можно использовать для небулевых действий, она находится в диапазоне от 0 до 1, представляя интенсивность данного действия.

Примечание: Этот метод не вызовет никаких вызовов Node._input(). Он предназначен для использования с is_action_pressed() и is_action_just_pressed(). Если вы хотите симулировать _input, используйте вместо этого parse_input_event().


void action_release(action: StringName) 🔗

Если указанное действие уже нажато, это отменит его.


void add_joy_mapping(mapping: String, update_existing: bool = false) 🔗

Добавляет новую запись сопоставления (в формате SDL2) в базу данных сопоставления. При желании можно обновить уже подключенные устройства.


void flush_buffered_events() 🔗

Отправляет все события ввода, которые находятся в текущем буфере, в игровой цикл. Эти события могли быть буферизованы в результате накопленного ввода (use_accumulated_input) или гибкой очистки ввода (ProjectSettings.input_devices/buffering/agile_event_flushing).

Движок уже сделает это сам в ключевых точках выполнения (по крайней мере один раз за кадр). Однако это может быть полезно в сложных случаях, когда вам нужен точный контроль над временем обработки событий.


Vector3 get_accelerometer() const 🔗

Возвращает ускорение в м/с² акселерометрического датчика устройства, если он есть. В противном случае метод возвращает Vector3.ZERO.

Обратите внимание, что этот метод возвращает пустой Vector3 при запуске из редактора, даже если на вашем устройстве есть акселерометр. Вам необходимо экспортировать свой проект на поддерживаемое устройство, чтобы считать значения с акселерометра.

Примечание: Этот метод работает только на Android и iOS. На других платформах он всегда возвращает Vector3.ZERO.

Примечание: Для Android необходимо включить ProjectSettings.input_devices/sensors/enable_accelerometer.


float get_action_raw_strength(action: StringName, exact_match: bool = false) const 🔗

Возвращает значение от 0 до 1, представляющее собой необработанную интенсивность данного действия, игнорируя мертвую зону действия. В большинстве случаев вместо этого следует использовать get_action_strength().

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.


float get_action_strength(action: StringName, exact_match: bool = false) const 🔗

Возвращает значение от 0 до 1, представляющее интенсивность данного действия. Например, в джойстике, чем дальше ось (аналоговые джойстики или триггеры L2, R2) от мертвой зоны, тем ближе значение будет к 1. Если действие сопоставлено с элементом управления, не имеющим оси, например клавиатурой, возвращаемое значение будет равно 0 или 1.

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.


float get_axis(negative_action: StringName, positive_action: StringName) const 🔗

Получите входные данные оси, указав два действия, одно отрицательное и одно положительное.

Это сокращение для записи Input.get_action_strength("positive_action") - Input.get_action_strength("negative_action").


Array[int] get_connected_joypads() 🔗

Возвращает Array, содержащий идентификаторы устройств всех подключенных в данный момент джойстиков.


CursorShape get_current_cursor_shape() const 🔗

Возвращает текущую назначенную форму курсора.


Vector3 get_gravity() const 🔗

Возвращает силу тяжести (gravity) в м/с² акселерометрического датчика устройства, если он есть. В противном случае метод возвращает Vector3.ZERO.

Примечание: Этот метод работает только на Android и iOS. На других платформах он всегда возвращает Vector3.ZERO.

Примечание: Для Android необходимо включить ProjectSettings.input_devices/sensors/enable_gravity.


Vector3 get_gyroscope() const 🔗

Возвращает скорость вращения в рад/с вокруг осей X, Y и Z устройства датчика гироскопа, если устройство имеет таковой. В противном случае метод возвращает Vector3.ZERO.

Примечание: Этот метод работает только на Android и iOS. На других платформах он всегда возвращает Vector3.ZERO.

Примечание: Для Android ProjectSettings.input_devices/sensors/enable_gyroscope должен быть включен.


float get_joy_axis(device: int, axis: JoyAxis) const 🔗

Возвращает текущее значение оси джойстика по индексу axis.


String get_joy_guid(device: int) const 🔗

Возвращает совместимый с SDL2 GUID устройства на платформах, использующих переназначение геймпада, например, 030000004c050000c405000000010000. Возвращает пустую строку, если не может быть найдена. Godot использует базу данных игровых контроллеров SDL2 для определения имен геймпадов и сопоставлений на основе этого GUID.

В Windows все GUID джойстиков XInput будут переопределены Godot на __XINPUT_DEVICE__, поскольку их сопоставления одинаковы.


Dictionary get_joy_info(device: int) const 🔗

Возвращает словарь с дополнительной платформенно-специфичной информацией об устройстве, например, исходное имя геймпада из ОС или индекс Steam Input.

В Windows, Linux и macOS словарь содержит следующие поля:

raw_name: Имя контроллера, полученное из ОС до переименования базой данных контроллеров.

vendor_id: Идентификатор поставщика USB-устройства.

product_id: Идентификатор продукта USB-устройства.

steam_input_index: Индекс геймпада Steam Input. Если устройство не является устройством Steam Input, этот ключ отсутствует.

В Windows словарь может содержать дополнительное поле:

xinput_index: Индекс контроллера в системе XInput. Этот ключ отсутствует для устройств, не поддерживаемых XInput.

Примечание: Возвращаемый словарь всегда пуст на Android, iOS, visionOS и Web.


String get_joy_name(device: int) 🔗

Возвращает имя джойстика по указанному индексу устройства, например, PS4 Controller. Godot использует Базу данных игровых контроллеров SDL2 для определения имен геймпадов.


float get_joy_vibration_duration(device: int) 🔗

Возвращает длительность текущего эффекта вибрации в секундах.


Vector2 get_joy_vibration_strength(device: int) 🔗

Возвращает силу вибрации джойстика: x — сила слабого мотора, y — сила сильного мотора.


Vector2 get_last_mouse_screen_velocity() 🔗

Возвращает последнюю скорость мыши в координатах экрана. Чтобы обеспечить точную и свободную от дрожания скорость, скорость мыши вычисляется только каждые 0,1 с. Поэтому скорость мыши будет отставать от движений мыши.


Vector2 get_last_mouse_velocity() 🔗

Возвращает последнюю скорость мыши. Чтобы обеспечить точную и свободную от дрожания скорость, скорость мыши вычисляется только каждые 0,1 с. Поэтому скорость мыши будет отставать от движений мыши.


Vector3 get_magnetometer() const 🔗

Возвращает напряженность магнитного поля в микротеслах для всех осей датчика магнитометра устройства, если он есть. В противном случае метод возвращает Vector3.ZERO.

Примечание: Этот метод работает только на Android и iOS. На других платформах он всегда возвращает Vector3.ZERO.

Примечание: Для Android необходимо включить ProjectSettings.input_devices/sensors/enable_magnetometer.


BitField[MouseButtonMask] get_mouse_button_mask() const 🔗

Возвращает кнопки мыши как битовую маску. Если одновременно нажато несколько кнопок мыши, биты суммируются. Эквивалентно DisplayServer.mouse_get_button_state().


Vector2 get_vector(negative_x: StringName, positive_x: StringName, negative_y: StringName, positive_y: StringName, deadzone: float = -1.0) const 🔗

Получает входной вектор, указывая четыре действия для положительных и отрицательных осей X и Y.

Этот метод полезен при получении векторного ввода, например, с джойстика, навигационной панели, стрелок или WASD. Длина вектора ограничена 1, и он имеет круговую мертвую зону, что полезно для использования векторного ввода в качестве движения.

По умолчанию мертвая зона автоматически рассчитывается из среднего значения мертвых зон действий. Однако вы можете переопределить мертвую зону, чтобы она была любой, которую вы хотите (в диапазоне от 0 до 1).


bool has_joy_light(device: int) const 🔗

Возвращает true, если геймпад имеет светодиодную подсветку, которая может менять цвет и/или яркость. См. также set_joy_light().

Примечание: Эта функция поддерживается только в Windows, Linux и macOS.


bool is_action_just_pressed(action: StringName, exact_match: bool = false) const 🔗

Возвращает true, когда пользователь начал нажатие кнопки действия в текущем кадре или тике физики. Возвращает true только в том кадре или тике, когда пользователь нажал кнопку.

Это полезно для кода, который должен выполняться только один раз при нажатии кнопки действия, а не каждый кадр, пока она нажата.

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.

Примечание: Возврат true не означает, что действие всё ещё нажато. Действие можно быстро нажать и отпустить, и true всё равно будет возвращён, чтобы не пропустить ввод.

Примечание: Из-за эффекта фантомного нажатия клавиатуры, is_action_just_pressed() может возвращать false, даже если нажата одна из клавиш действия. Подробнее см. в разделе Примеры ввода в документации.

Примечание: При обработке ввода (например, Node._input()) используйте InputEvent.is_action_pressed() для запроса состояния действия текущего события. См. также is_action_just_pressed_by_event().


bool is_action_just_pressed_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const 🔗

Возвращает true, когда пользователь начал нажатие кнопки действия в текущем кадре или такте физики, и первым событием, вызвавшим нажатие кнопки действия в текущем кадре/такте физики, было event. Возвращает true только в том кадре или такте, когда пользователь нажал кнопку.

Это полезно для кода, который должен выполняться только один раз при нажатии кнопки действия, и действие обрабатывается во время обработки ввода (например, Node._input()).

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.

Примечание: Возврат true не означает, что действие всё ещё нажато. Действие можно быстро нажать и отпустить, и при этом true всё равно будет возвращён, чтобы не пропустить ввод.

Примечание: Из-за эффекта фантомного нажатия клавиатуры is_action_just_pressed() может возвращать false, даже если нажата одна из клавиш действия. Подробнее см. Примеры ввода в документации.


bool is_action_just_released(action: StringName, exact_match: bool = false) const 🔗

Возвращает true, когда пользователь прекращает нажатие на событие действия в текущем кадре или такте физики. Возвращает true только в том кадре или такте, когда пользователь отпускает кнопку.

Примечание: Возвращение true не означает, что действие ещё не нажато. Действие можно быстро отпустить и снова нажать, и true всё равно будет возвращено, чтобы не пропустить ввод.

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.

Примечание: Во время обработки входных данных (например, Node._input()) используйте InputEvent.is_action_released() для запроса состояния действия текущего события. См. также is_action_just_released_by_event().


bool is_action_just_released_by_event(action: StringName, event: InputEvent, exact_match: bool = false) const 🔗

Возвращает true, когда пользователь прекращает нажатие кнопки действия в текущем кадре или такте физики, и первым событием, вызвавшим отпускание кнопки в текущем кадре/такте физики, было event. Возвращает true только в том кадре или такте, когда пользователь отпускает кнопку.

Это полезно, когда действие обрабатывается во время обработки ввода (например, Node._input()).

Примечание: Возврат true не означает, что действие ещё не нажато. Действие можно быстро отпустить и снова нажать, и true всё равно будет возвращён, чтобы не пропустить ввод.

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.


bool is_action_pressed(action: StringName, exact_match: bool = false) const 🔗

Возвращает true, если вы нажимаете событие действия.

Если exact_match равен false, он игнорирует дополнительные модификаторы ввода для событий InputEventKey и InputEventMouseButton, а также направление для событий InputEventJoypadMotion.

Примечание: Из-за эффекта фантомного нажатия клавиатуры is_action_pressed() может возвращать false, даже если нажата одна из клавиш действия. Для получения дополнительной информации см. Примеры ввода в документации.


bool is_anything_pressed() const 🔗

Возвращает true, если нажато какое-либо действие, клавиша, кнопка джойстика или кнопка мыши. Это также вернет true, если какое-либо действие имитируется через код путем вызова action_press().


bool is_joy_button_pressed(device: int, button: JoyButton) const 🔗

Возвращает true, если вы нажимаете кнопку джойстика с индексом button.


bool is_joy_known(device: int) 🔗

Возвращает true, если система знает указанное устройство. Это означает, что она устанавливает все индексы кнопок и осей. Неизвестные джойстики не должны соответствовать этим константам, но вы все равно можете извлекать из них события.


bool is_key_label_pressed(keycode: Key) const 🔗

Возвращает true, если вы нажимаете клавишу с напечатанным на ней keycode. Вы можете передать константу Key или любой код символа Unicode.


bool is_key_pressed(keycode: Key) const 🔗

Возвращает true, если вы нажимаете латинскую клавишу в текущей раскладке клавиатуры. Вы можете передать константу Key.

is_key_pressed() рекомендуется только вместо is_physical_key_pressed() в неигровых приложениях. Это гарантирует, что сочетания клавиш ведут себя ожидаемым образом в зависимости от раскладки клавиатуры пользователя, поскольку сочетания клавиш, как правило, зависят от раскладки клавиатуры в неигровых приложениях. Если есть сомнения, используйте is_physical_key_pressed().

Примечание: Из-за эффекта фантомных нажатий клавиатуры is_key_pressed() может возвращать false, даже если нажата одна из клавиш действия. См. Примеры ввода в документации для получения дополнительной информации.


bool is_mouse_button_pressed(button: MouseButton) const 🔗

Возвращает true, если вы нажимаете кнопку мыши, указанную с помощью MouseButton.


bool is_physical_key_pressed(keycode: Key) const 🔗

Возвращает true, если вы нажимаете клавишу в физическом месте на 101/102-клавишной клавиатуре US QWERTY. Вы можете передать константу Key.

is_physical_key_pressed() рекомендуется вместо is_key_pressed() для действий в игре, так как он заставит раскладки W/A/S/D работать независимо от раскладки клавиатуры пользователя. is_physical_key_pressed() также гарантирует, что клавиши с цифрами верхнего ряда будут работать на любой раскладке клавиатуры. Если вы сомневаетесь, используйте is_physical_key_pressed().

Примечание: Из-за фантомного нажатия клавиатуры is_physical_key_pressed() может возвращать false, даже если нажата одна из клавиш действия. Для получения дополнительной информации см. Примеры ввода в документации.


void parse_input_event(event: InputEvent) 🔗

Подает InputEvent в игру. Может использоваться для искусственного запуска событий ввода из кода. Также генерирует вызовы Node._input().

var cancel_event = InputEventAction.new()
cancel_event.action = "ui_cancel"
cancel_event.pressed = true
Input.parse_input_event(cancel_event)

Примечание: Вызов этой функции не влияет на операционную систему. Так, например, отправка InputEventMouseMotion не переместит курсор мыши ОС в указанную позицию (используйте вместо этого warp_mouse()), а отправка Alt/Cmd + Tab в качестве InputEventKey не будет переключать между активными окнами.


void remove_joy_mapping(guid: String) 🔗

Удаляет все сопоставления из внутренней базы данных, которые соответствуют данному GUID. Все подключенные в данный момент джойпады, которые используют этот GUID, станут не сопоставленными.

На Android Godot будет сопоставлен с внутренним резервным сопоставлением.


void set_accelerometer(value: Vector3) 🔗

Устанавливает значение ускорения акселерометрического датчика. Может использоваться для отладки на устройствах без аппаратного датчика, например, в редакторе на ПК.

Примечание: Это значение может быть немедленно перезаписано значением аппаратного датчика на Android и iOS.


void set_custom_mouse_cursor(image: Resource, shape: CursorShape = 0, hotspot: Vector2 = Vector2(0, 0)) 🔗

Устанавливает пользовательское изображение курсора мыши, которое отображается только внутри игрового окна для заданной мыши shape. Также можно указать горячую точку. Передача null в параметр image сбрасывает его до системного курсора.

image может быть либо Texture2D, либо Image, а его размер должен быть меньше или равен 256×256. Чтобы избежать проблем с рендерингом, рекомендуются размеры меньше или равны 128×128.

hotspot должен быть в пределах размера image.

Примечание: AnimatedTexture не поддерживаются в качестве пользовательских курсоров мыши. При использовании AnimatedTexture будет отображаться только первый кадр.

Примечание: Рекомендуются режимы сжатия Lossless, Lossy или Uncompressed. Режим сжатия Video RAM может использоваться, но он будет распакован на ЦП, что означает замедление времени загрузки и отсутствие экономии памяти по сравнению с режимами без потерь.

Примечание: На веб-платформе максимально допустимый размер изображения курсора составляет 128×128. Изображения курсора размером более 32×32 также будут отображаться только в том случае, если изображение курсора мыши полностью расположено на странице по соображениям безопасности.


void set_default_cursor_shape(shape: CursorShape = 0) 🔗

Устанавливает форму курсора по умолчанию для использования в области просмотра вместо CURSOR_ARROW.

Примечание: Если вы хотите изменить форму курсора по умолчанию для узлов Control, используйте вместо этого Control.mouse_default_cursor_shape.

Примечание: Этот метод генерирует InputEventMouseMotion для немедленного обновления курсора.


void set_gravity(value: Vector3) 🔗

Устанавливает значение силы тяжести (gravity) акселерометрического датчика. Может использоваться для отладки на устройствах без аппаратного датчика, например, в редакторе на ПК.

Примечание: Это значение может быть немедленно перезаписано значением аппаратного датчика на Android и iOS.


void set_gyroscope(value: Vector3) 🔗

Устанавливает значение скорости вращения датчика гироскопа. Может использоваться для отладки на устройствах без аппаратного датчика, например в редакторе на ПК.

Примечание: Это значение может быть немедленно перезаписано значением аппаратного датчика на Android и iOS.


void set_joy_light(device: int, color: Color) 🔗

Устанавливает цвет светодиода джойстика (если он есть). См. также has_joy_light().

Примечание: Получить цвет подсветки джойстика невозможно. Если вам необходимо знать назначенный цвет, сохраните его отдельно.

Примечание: Эта функция поддерживается только в Windows, Linux и macOS.


void set_magnetometer(value: Vector3) 🔗

Устанавливает значение магнитного поля датчика магнитометра. Может использоваться для отладки на устройствах без аппаратного датчика, например в редакторе на ПК.

Примечание: Это значение может быть немедленно перезаписано значением аппаратного датчика на Android и iOS.


bool should_ignore_device(vendor_id: int, product_id: int) const 🔗

Запрашивает, следует ли игнорировать устройство ввода или нет. Устройства можно игнорировать, установив переменную среды SDL_GAMECONTROLLER_IGNORE_DEVICES. Прочтите документацию SDL для получения дополнительной информации.

Примечание: Некоторые сторонние инструменты могут вносить свой вклад в список игнорируемых устройств. Например, SteamInput создает виртуальные устройства из физических устройств для целей переназначения. Чтобы избежать обработки одного и того же устройства ввода дважды, исходное устройство добавляется в список игнорируемых.


void start_joy_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0) 🔗

Начинает вибрировать джойпад. Джойпады обычно поставляются с двумя вибрирующими моторами, сильным и слабым. weak_magnitude — это сила слабого мотора (от 0 до 1), а strong_magnitude — это сила сильного мотора (от 0 до 1). duration — это длительность эффекта в секундах (длительность 0 будет пытаться воспроизводить вибрацию бесконечно). Вибрацию можно остановить заранее, вызвав stop_joy_vibration().

Примечание: Не все устройства совместимо с длительными эффектами; рекомендуется перезапустить эффект, если его нужно воспроизводить более нескольких секунд.

Примечание: Для macOS вибрация поддерживается только в macOS 11 и более поздних версиях.


void stop_joy_vibration(device: int) 🔗

Останавливает вибрацию джойстика, запущенную с помощью start_joy_vibration().


void vibrate_handheld(duration_ms: int = 500, amplitude: float = -1.0) 🔗

Вибрировать портативное устройство в течение указанной продолжительности в миллисекундах.

Amplitude — это сила вибрации, как значение между 0.0 и 1.0. Если установлено значение -1.0, используется сила вибрации устройства по умолчанию.

Примечание: Этот метод реализован на Android, iOS и Web. Он не влияет на другие платформы.

Примечание: Для Android vibrate_handheld() требует включения разрешения VIBRATE в предустановке экспорта. В противном случае vibrate_handheld() не будет иметь никакого эффекта.

Примечание: Для iOS указание продолжительности поддерживается только в iOS 13 и более поздних версиях.

Примечание: Для Web амплитуду изменить нельзя.

Примечание: Некоторые веб-браузеры, такие как Safari и Firefox для Android, не поддерживают vibrate_handheld().


void warp_mouse(position: Vector2) 🔗

Устанавливает положение мыши на указанный вектор, указанный в пикселях и относительно начала координат в верхнем левом углу текущего окна игры диспетчера окон.

Положение мыши обрезается до границ разрешения экрана или до границ окна игры, если MouseMode установлен на MOUSE_MODE_CONFINED или MOUSE_MODE_CONFINED_HIDDEN.

Примечание: warp_mouse() поддерживается только в Windows, macOS и Linux. Он не действует на Android, iOS и Web.