例如,您正在尝试使用Unity的光标API来更改光标,例如,从播放器的清单中拖动一个项目。光标确实发生了变化,但是图像由于抗锯齿而模糊(大概)。该图像是一个简单的16x16子画面,在游戏世界中显示时不会抗锯齿,但在显示为光标时会显示。有什么办法可以关闭光标的抗锯齿功能吗?
而且,当我在编辑器之外运行游戏时,光标图像似乎根本不起作用-它仅显示一些小破折号或一些静态字符。
我设置光标的方式如下:
texture = itemImg.sprite.texture;
Cursor.SetCursor(texture, Vector2.zero, CursorMode.Auto);
itemImg
是处理拖动的UI图像(库存位置)
感谢您的任何帮助或建议。如果出现这些问题,我是否应该放弃Cursor API?谢谢。
使用Cursor API时遇到了问题。尽管在调用“光标图像似乎根本不起作用” bug之前可以尝试一些事情。
请注意您的代码:
texture = itemImg.sprite.texture;
显示您正在使用的Texture
未设置为光标作为纹理类型。定义要使用的Texture
,然后按照上述步骤为纹理进行正确的设置。不要将UI Image用作鼠标光标的源。
public Texture2D texture;
Cursor.SetCursor(texture, Vector2.zero, CursorMode.Auto);
如果这些不能解决您的问题,请使用CursorMode.ForceSoftware
而不是CursorMode.Auto
。
最后,假设您在Cursor API上仍然有问题,只需将SpriteRenderer位置设置为鼠标位置,就放弃它,并简单地制作一个假光标。
yourSprite.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
现在,您可以控制鼠标指针的质量。
在Unity 2018.3上完美运行
我在Unity 2019.3中通过以下方式解决了此问题: