1.先看效果
2.方法
(1)图标指针图片资源导入并设置
链接: https://pan.baidu.com/s/1peQu-f7l-YBgEdbsdDcK2g 提取码: tdd6
找两个你喜欢的资源导入unity的Asset中,设置它们的Texture Type为Cursor
(2)脚本控制
第一步:新建一个脚本,挂载到一个空对象
第二步:打开脚本,新建三个Texture2D类型的公共变量,返回Unity把你喜欢的指针贴图拖到变量窗口中。
第三步:设置物体标签,我们是以自定义标签的方式判断更改哪种指针;所以首先要给物体设置标签。比如地面,我给它添加了Ground标签,墙添加了Wall标签;圆柱添加了Cylinder标签。
第四步:写更改鼠标指针的方法,其中更改指针的主要API为Cursor.SetCursor(),不懂得可以去Unity手册查找
void setCursorTexture()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//定义鼠标在game窗口所指的射线
RaycastHit hitInfo; //射线碰撞的信息
if (Physics.Raycast(ray, out hitInfo))//判断是否碰到物体
{
//切换指针
switch (hitInfo.collider.gameObject.tag)
{
case "Ground":
Cursor.SetCursor(groundCr, new Vector2(16, 16), CursorMode.Auto);
break;
case "Wall":
Cursor.SetCursor(wallCr, new Vector2(16, 16), CursorMode.Auto);
break;
case "Cylinder":
Cursor.SetCursor(CylinderCr, new Vector2(16, 16), CursorMode.Auto);
break;
default:
Cursor.SetCursor(null,Vector2.zero,CursorMode.Auto);
break;
}
}
}
第五步:将此方法在Update()方法中实现每帧调用。
void Update()
{
setCursorTexture();
}
END(可以去运行程序了)
附完整版脚本
技术来源:https://www.bilibili.com/video/BV1Hf4y1478J