Mac 硬件鼠标与 Unity C# 自定义鼠标重叠问题

3
我正在开发的游戏有一个自定义光标。由于光标的大小,我不得不使用Cursor.SetCursor,并将CursorMode设置为ForceSoftware(将CursorMode设置为Auto会压缩光标,效果很差)。这在Windows上运行良好,但是在Mac上,系统默认光标会重叠软件光标,显然看起来不对。我已经到处寻找解决方法,但是没有找到合适的方法。我尝试过在Unity的播放器设置中仅设置光标,但是这会扭曲光标贴图。目前只有这一行代码设置光标。
private void Start(){
    Cursor.SetCursor(cursor, new Vector2(-1, 1), CursorMode.ForceSoftware);
}

其中cursor是我在Unity编辑器中分配的Texture2D。 我知道这可能是一个非常简单的问题,但我确实不确定如何在Mac系统上解决它。

1个回答

3
默认的Mac光标会与软件光标重叠。
问题出在你的Cursor.SetCursor代码上,因为你强制光标成为软件光标而不是它需要的硬件光标。
因为有些平台只支持一个硬件光标,并且通过Cursor.SetCursor在运行时创建的光标被视为软件光标,不会“替换”硬件光标。
例子:
Cursor.SetCursor(cursorTexture, Vector2.zero, CursorMode.Auto);

最重要的设置是将 CursorMode.Auto 设置为工作模式,这样它就可以在 Mac 或其他只支持一个硬件光标的平台上运行。因此,它实际上“替换”了硬件光标。

啊,好的,我明白了,谢谢。这是我最初尝试的一种方法,但它与在项目设置中将光标设置为默认光标做的事情相同,即压缩光标以强制其成为32x32大小。这对于我们拥有的光标来说太小了,看起来很奇怪。不过还是谢谢你的帮助,如果我们找不到其他方法来在所有平台上显示适当大小的光标,我会使用这种方法。谢谢 :) - JigSawPsycho
1
问题是在alt-tab一次后,光标无法工作。 - pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接