在网上查的帖子,先看一下:
Texture2D ClickedCursorImg;
//把鼠标指针改为ClickedCursorImg
Cursor.SetCursor(ClickedCursorImg, Vector2.zero, CursorMode.Auto);
// 重置鼠标指针图标
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
大佬的传送门:https://blog.csdn.net/weixin_41573444/article/details/88184417
在我使用的时候发现一个问题,先看我的代码:
public Texture2D ClickedCursorImg;
bool setcursor_ = false;
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo)) //射线碰到了物体
{
GameObject gameObj = hitInfo.collider.gameObject;
if ((gameObj.tag == "Player"))
{
ChangeMouseCursor();
}
else
{
RecoverMouseCursor();
}
}
else
{
RecoverMouseCursor();
}
}
/// <summary>
/// 改变鼠标光标
/// </summary>
void ChangeMouseCursor()
{
if (!setcursor_)
{
Cursor.SetCursor(ClickedCursorImg, Vector2.zero, CursorMode.Auto);
setcursor_ = true;
}
}
/// <summary>
/// 重置鼠标指针图
/// </summary>
void RecoverMouseCursor()
{
if (setcursor_)
{
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
setcursor_ = false;
}
}
将需要修改的图标指定后发现显示的居然不对?
原来问题出在这里,经测试将Texture选择为Default或者Cursor都显示了预期的效果。