🖱 Unity 鼠标控制 API 技术文档

类别 成员 / 枚举值 类型 / 参数 功能说明 鼠标显示情况
属性 Cursor.visible bool 控制鼠标指针是否可见 true 显示
false 隐藏
属性 Cursor.lockState CursorLockMode 控制鼠标锁定状态,用于切换交互模式 由锁定模式决定
方法 Cursor.SetCursor() Texture2D Vector2 CursorMode 设置自定义鼠标指针 取决于 Cursor.visible
枚举 CursorLockMode.None CursorLockMode 不锁定,鼠标可自由移出窗口 Cursor.visible 决定
枚举 CursorLockMode.Locked CursorLockMode 锁定到屏幕中心,仅返回移动增量 自动隐藏(忽略 Cursor.visible
枚举 CursorLockMode.Confined CursorLockMode 限制鼠标在游戏窗口内(桌面平台) Cursor.visible 决定

🧪 示例:锁定并隐藏鼠标

public static void LockCursor(bool value = true)
{
#if UNITY_STANDALONE || UNITY_WEBGL
    Cursor.visible = !value;
    Cursor.lockState = value ? CursorLockMode.Locked : CursorLockMode.None;
#endif
}

Cursor.SetCursor(...)Unity 中用于设置鼠标光标外观的 API,常见于 PC / Mac 游戏或编辑器工具中,用来在不同交互状态下切换鼠标样式(例如:默认、攻击、可交互、拖拽等)。

一、方法签名

Cursor.SetCursor(
    Texture2D texture,
    Vector2 hotspot,
    CursorMode cursorMode
);

二、参数

1️⃣ Texture2D texture

光标贴图

  • 用于显示的鼠标图片

  • 通常是 小尺寸透明 PNG

    • 常见尺寸:16×1632×3264×64
  • 需要在 Import Settings 中:

    • Texture Type = Cursor
    • Alpha Is Transparency = On
public Texture2D attackCursor;

2️⃣ Vector2 hotspot

热点(点击判定点)

  • 表示光标图片中 “真正点击的位置”
  • 坐标原点在 贴图左上角
  • 单位是 像素
    常见写法:
Vector2 hotspot = new Vector2(0, 0); 
// 左上角(适合箭头光标)
Vector2 hotspot = new Vector2(
    texture.width / 2,
    texture.height / 2
);
// 中心点(适合准星、圆形光标)

3️⃣ CursorMode cursorMode

光标模式

CursorMode.Auto        // 推荐:自动选择最佳方式
CursorMode.ForceSoftware // 强制软件光标(兼容性好,但性能略差)
模式 说明
Auto 使用硬件光标(性能最好,默认)
ForceSoftware 用软件绘制(某些平台或特殊需求)

三、最基本示例

public Texture2D cursor;

void Start()
{
    Cursor.SetCursor(cursor, Vector2.zero, CursorMode.Auto);
}

效果:
➡ 游戏开始时,将鼠标换成指定图片


四、常见使用场景

🎯 1. 不同状态切换光标

void OnMouseEnter()
{
    Cursor.SetCursor(hoverCursor, hotspot, CursorMode.Auto);
}

void OnMouseExit()
{
    Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
}

texture = null → 恢复系统默认光标


五、注意事项(非常重要)

⚠ 常见问题

  1. 贴图太大
    • 光标不会自动缩放
  2. 未设置 Texture Type = Cursor
    • 可能模糊或无法正确显示
  3. 热点设置错误
    • 点击位置明显偏移
  4. WebGL
    • 部分浏览器对自定义光标支持有限

posted @ 2026-01-17 21:07  高山仰止666  阅读(0)  评论(0)    收藏  举报