Unity3D学习 愤怒的小鸟之Play界面(三)
目标
改变鼠标样式,使其变成小手。
原理
原理较为简单,即先将原有的鼠标光标隐藏,然后在 OnGUI 函数里,在鼠标对应的位置绘制自定义的鼠标图片。
代码实现
以下是实现该功能的代码:
#pragma strict
// 定义鼠标正常状态的纹理
var myCursor : Texture2D;
// 定义鼠标点击状态的纹理
var myClickCursor : Texture2D;
// 鼠标图片的宽度
var cursorWidth : float;
// 鼠标图片的高度
var cursorHeight : float;
// 标记鼠标是否被点击
private var isClicked : boolean = false;
// 初始化函数,在脚本实例被载入时调用
function Start () {
// 隐藏系统默认的鼠标光标
Screen.showCursor = false;
}
// 更新函数,每帧都会调用
function Update () {
// 检测鼠标左键是否被按下
if (Input.GetMouseButton(0)) {
isClicked = true;
} else {
isClicked = false;
}
}
// 用于绘制 GUI 元素的函数
function OnGUI () {
// 获取当前鼠标的位置
var mousePos = Input.mousePosition;
if (isClicked) {
// 若鼠标被点击,绘制点击状态的鼠标图片
GUI.DrawTexture(Rect(mousePos.x - cursorWidth / 2, Screen.height - mousePos.y - cursorHeight / 2, cursorWidth, cursorHeight), myClickCursor);
} else {
// 若鼠标未被点击,绘制正常状态的鼠标图片
GUI.DrawTexture(Rect(mousePos.x - cursorWidth / 2, Screen.height - mousePos.y - cursorHeight / 2, cursorWidth, cursorHeight), myCursor);
}
}
效果说明
上述代码实现了鼠标点击和未点击时使用不同的图片样式。你可以将不同的鼠标样式图片分别赋值给 myCursor 和 myClickCursor 变量,然后运行程序,即可看到效果。
测试效果
现在,你可以尝试运行程序,看看鼠标样式是否成功改变为小手样式。