Настройка курсора мыши¶
Возможно, вам захочется изменить внешний вид курсора мыши в вашей игре, чтобы он соответствовал общему дизайну. Существует два способа настройки курсора мыши:
Используя настройки проекта
Используя скрипт
Использование настроек проекта - это более простой (но более ограниченный) способ настройки курсора мыши. Второй способ более настраиваемый, но затрагивает создание сценариев.
Примечание
Вы можете отобразить "программный" курсор мыши, скрыв курсор мыши и переместив Sprite в положение курсора в методе _process
, но это добавит по крайней мере один кадр задержки по сравнению с "аппаратным" курсором мыши. Поэтому рекомендуется по возможности использовать описанный здесь подход.
Если вам нужно использовать "программный" подход, подумайте о добавлении шага экстраполяции, чтобы лучше отобразить фактический ввод мыши.
Используя настройки проекта¶
Откройте настройки проекта, перейдите в Display>Mouse Cursor. Вы увидите Custom Image и Custom Image Hotspot.

Custom Image - это желаемое изображение, которое вы хотите установить в качестве курсора мыши. Custom Hotspot - это точка на изображении, которую вы хотели бы использовать в качестве точки обнаружения курсора.
Примечание
Пользовательское изображение должно быть меньше 256x256.
Используя скрипт¶
Создайте 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)
public override void _Ready()
{
// Load the custom images for the mouse cursor.
var arrow = ResourceLoader.Load("res://arrow.png");
var beam = ResourceLoader.Load("res://beam.png");
// Changes only the arrow shape of the cursor.
// This is similar to changing it in the project settings.
Input.SetCustomMouseCursor(arrow);
// Changes a specific shape of the cursor (here, the I-beam shape).
Input.SetCustomMouseCursor(beam, Input.CursorShape.Ibeam);
}
Примечание
Проверьте Input.set_custom_mouse_cursor().
Демо-проект¶
Узнайте больше, изучив этот демо-проект: https://github.com/guilhermefelipecgs/custom_hardware_cursor
Список курсоров¶
Как описано в классе Input (см. перечисление CursorShape), существует несколько курсоров мыши, которые вы можете определить. Какие из них вы хотите использовать, зависит от вашего варианта использования.