1、第一个直接改变鼠标样式
#pragma strict public var cursorTexture:Texture2D; private var changeFlag = false ; function Update(){ if (changeFlag){ Cursor.SetCursor(cursorTexture,Vector2.zero,CursorMode.Auto); }else { Cursor.SetCursor(null ,Vector2.zero,CursorMode.Auto); } } function OnGUI(){ if (GUI.Button(Rect(10,10,100,50), "hand" )){ changeFlag = true ; } if (GUI.Button(Rect(120,10,100,50), "arrow" )){ changeFlag = false ; } }
2、隐藏鼠标,在鼠标位置放一新图片
#pragma strict public var cursorTexture:Texture2D; private var changeFlag = false ; function OnGUI(){ if (GUI.Button(Rect(10,10,100,50), "hand" )){ changeFlag = true ; Screen.showCursor = false ; } if (GUI.Button(Rect(120,10,100,50), "arrow" )){ changeFlag = false ; Screen.showCursor = true ; } if (changeFlag){ var mousePos = Input.mousePosition; GUI.DrawTexture(Rect(mousePos.x,Screen.height - mousePos.y,cursorTexture.width,cursorTexture.height),cursorTexture); } }
需要注意几点的是:用第一种方法中的鼠标图片要修改图片导入的属性,即在inspector中的Texture Type要改为Cursor,否则鼠标会显示不正常。
第二种方法中,在unity编辑器中运行的时候,当改变鼠标样式后,默认的鼠标箭头样式不会消失,但是发布之后就没有什么问题了。