Unity3D学习 愤怒的小鸟之Play界面(三)

2015年03月20日 16:23 0 点赞 0 评论 更新于 2025-11-21 17:54

目标

改变鼠标样式,使其变成小手。

原理

原理较为简单,即先将原有的鼠标光标隐藏,然后在 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);
}
}

效果说明

上述代码实现了鼠标点击和未点击时使用不同的图片样式。你可以将不同的鼠标样式图片分别赋值给 myCursormyClickCursor 变量,然后运行程序,即可看到效果。

测试效果

现在,你可以尝试运行程序,看看鼠标样式是否成功改变为小手样式。

作者信息

menghao

menghao

共发布了 3994 篇文章