Настройка курсора мыши

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

  1. Использование настроек проекта. Это проще, но более ограниченно.

  2. Использование скрипта. Этот способ более настраиваемый, но требует написания скриптов.

Примечание

Вы можете отобразить "программный" курсор, скрыв его по умолчанию и перемещая Sprite2D в положение курсора методом _process(), но это добавит по крайней мере один кадр задержки по сравнению с настоящим курсором мыши. Поэтому рекомендуется по возможности использовать описанный здесь подход.

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

Используя настройки проекта

Откройте Project Settings и перейдите в Display > Mouse Cursor. Вы увидите настройки Пользовательское изображение, Горячая точка пользовательского изображения и Смещение позиции всплывающей подсказки.

../../_images/cursor_project_settings.webp

Custom Image - это желаемое изображение, которое вы хотите установить в качестве курсора мыши. Горячая точка пользовательского изображения - это точка на изображении, которую вы хотели бы использовать в качестве точки обнаружения курсора.

Предупреждение

Размер пользовательского изображения должен быть не более 256×256 пикселей. Во избежание проблем с рендерингом рекомендуется использовать размер 128×128 пикселей или меньше.

На веб-платформах максимально допустимый размер изображения курсора составляет 128×128.

Используя скрипт

Создайте Node и прикрепите следующий скрипт.

extends Node


# Load the custom images for the mouse cursor.
var arrow = load("res://arrow.png")
var beam = load("res://beam.png")


func _ready():
    # Changes only the arrow shape of the cursor.
    # This is similar to changing it in the project settings.
    Input.set_custom_mouse_cursor(arrow)

    # Changes a specific shape of the cursor (here, the I-beam shape).
    Input.set_custom_mouse_cursor(beam, Input.CURSOR_IBEAM)

См. также

Дополнительную информацию об использовании и особенностях конкретной платформы см. в документации: Input.set_custom_mouse_cursor().

Список курсоров

Вы можете определить несколько курсоров мыши, описанных в перечислении Input.CursorShape. Выбор курсора зависит от вашего варианта использования.