2017-05-30 74 views
0

嗨我试图使用Unity的光标API来更改光标,例如,从玩家的库存中拖动一个项目。光标确实会改变,但由于抗锯齿(假定),图像模糊。该图像是一个简单的16x16精灵,在游戏世界中显示时不会消除锯齿,而是在显示为光标时显示。有什么办法可以关闭游标的抗锯齿功能吗?另外,当我在编辑器外部运行游戏时,光标图像看起来根本不起作用 - 它只是显示一些小的破折号或一些静态的。光标纹理反锯齿和问题

我设置光标的方法是,像这样:

texture = itemImg.sprite.texture; 
Cursor.SetCursor(texture, Vector2.zero, CursorMode.Auto); 

哪里itemImg是处理拖动(库存插槽)

任何帮助或建议表示赞赏的UI图像。如果它会出现这些问题,我应该抛弃Cursor API吗?谢谢。

回答

0

我在使用Cursor API时遇到了问题。虽然在调用之前有些事情需要尝试,但“光标图像根本不起作用”有一个错误。

  • 确保光标纹理类型设置为光标
  • 设置过滤器模式点(无过滤器)
  • 最后,将压缩设置为高质量

enter image description here

需要注意的是你的代码:

texture = itemImg.sprite.texture; 

表明Texture您正在使用未设置为光标为纹理类型。定义要使用的Texture,然后按照上述步骤进行纹理的正确设置。不要使用UI图像作为鼠标光标的来源。

public Texture2D texture; 
Cursor.SetCursor(texture, Vector2.zero, CursorMode.Auto); 

如果这些不解决您的问题,使用CursorMode.ForceSoftware代替CursorMode.Auto

最后,假设你仍然有Cursor API的问题,放弃它,只需将SpriteRenderer位置设置为鼠标位置,制作一个假光标。

yourSprite.position = Camera.main.ScreenToWorldPoint(Input.mousePosition); 

现在,您可以控制鼠标指针的质量。