Den Mauszeiger anpassen¶
Möglicherweise möchten Sie das Erscheinungsbild des Mauszeigers in Ihrem Spiel ändern, um es an das Gesamtdesign anzupassen. Es gibt zwei Möglichkeiten, den Mauszeiger anzupassen:
Projekteinstellungen verwenden
Verwenden eines Skripts
Die Verwendung von Projekteinstellungen ist eine einfachere (aber eingeschränktere) Möglichkeit, den Mauszeiger anzupassen. Der zweite Weg ist anpassbarer, benötigt jedoch Skripte.
Bemerkung
Sie können einen "Software"-Mauszeiger anzeigen, indem Sie den Mauszeiger ausblenden und ein Sprite in einer _process
-Methode an die Mausposition bewegen. Dies erzeugt jedoch eine winzige Verzögerung im Vergleich zu einem "Hardware"-Mauszeiger. Daher wird empfohlen, nach Möglichkeit den hier beschriebenen Ansatz zu verwenden.
Wenn Sie den "Software"-Ansatz verwenden müssen, sollten Sie einen Extrapolationsschritt hinzufügen, um die tatsächliche Mauseingabe besser anzuzeigen.
Projekteinstellungen verwenden¶
Öffnen Sie die Projekteinstellungen und gehen Sie zu Anzeige> Mauszeiger. Sie sehen "Benutzerdefiniertes Bild" und "Benutzerdefinierter Hotspot".

Benutzerdefiniertes Bild ist das gewünschte Bild, das Sie als Mauszeiger festlegen möchten. Benutzerdefinierter Hotspot ist der Punkt im Bild, den Sie als Erkennungspunkt für den Cursor verwenden möchten.
Bemerkung
Das benutzerdefinierte Bild muss kleiner als 256x256 sein.
Verwenden eines Skripts¶
Erstellen Sie einen Node und hängen Sie das folgende Skript an.
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);
}
Bemerkung
Siehe auch Input.set_custom_mouse_cursor().
Beispielprojekt¶
Weitere Details findet man in diesem Beispielprojekt: https://github.com/guilhermefelipecgs/custom_hardware_cursor
Cursorliste¶
Wie in der Klasse Input dokumentiert (siehe das Enum CursorShape), gibt es mehrere Mauscursor, die Sie definieren können. Welche Sie verwenden möchten, hängt von Ihrem Anwendungsfall ab.