自定义鼠标光标

您可能希望更改游戏中鼠标光标的外观,以便适应总体设计.自定义鼠标光标有两种方法:

  1. 使用项目设置

  2. 使用脚本

使用项目设置是一种更简单,但有限的自定义鼠标光标的方法.第二种方法更可定制,但涉及到脚本.

注解

您可以通过隐藏鼠标光标并将Sprite移动到``_process``方法中的光标位置来显示”软件”鼠标光标,但与”硬件”鼠标光标相比,这至少会增加一帧延迟.因此,建议尽可能使用此处描述的方法.

如果您必须使用”软件”方法,可以考虑添加一个外推步骤,以便更好地显示实际的鼠标输入.

使用项目设置

打开项目设置,转到 Display>Mouse Cursor.您将看到自定义图像和自定义图像热点.

../../_images/cursor_project_settings.png

自定义图像是希望设置为鼠标光标的图像.自定义热点是图像中的点,您希望将其用作光标的检测点.

注解

自定义图像 必须 小于256x256.

使用脚本

创建一个节点并附加下面的脚本.

GDScript

C#

  1. extends Node
  2. # Load the custom images for the mouse cursor.
  3. var arrow = load("res://arrow.png")
  4. var beam = load("res://beam.png")
  5. func _ready():
  6. # Changes only the arrow shape of the cursor.
  7. # This is similar to changing it in the project settings.
  8. Input.set_custom_mouse_cursor(arrow)
  9. # Changes a specific shape of the cursor (here, the I-beam shape).
  10. Input.set_custom_mouse_cursor(beam, Input.CURSOR_IBEAM)
  1. public override void _Ready()
  2. {
  3. // Load the custom images for the mouse cursor.
  4. var arrow = ResourceLoader.Load("res://arrow.png");
  5. var beam = ResourceLoader.Load("res://beam.png");
  6. // Changes only the arrow shape of the cursor.
  7. // This is similar to changing it in the project settings.
  8. Input.SetCustomMouseCursor(arrow);
  9. // Changes a specific shape of the cursor (here, the I-beam shape).
  10. Input.SetCustomMouseCursor(beam, Input.CursorShape.Ibeam);
  11. }

注解

检查 Input.set_custom_mouse_cursor().

演示项目

通过研究这个演示项目了解更多信息:https://github.com/guilhermefelipecgs/custom_hardware_cursor

光标列表

正如 Input 类(参见 CursorShape enum)中所述,可以定义多个鼠标光标.您想要使用哪一个取决于您的用例.