Skip to main content
AR论坛
 首页 » 资源教程 » Unity3D教程

【Unity】7.2 鼠标输入

2016年11月05日 13:46:351030

一、简介

在桌面系统的游戏中,鼠标输入是最基本的输入方式之一。游戏很多操作都需要鼠标来完成,例如武器的瞄准和开火、菜单的单击、物体的拾取等。

鼠标输入的相关事件包括鼠标移动、按键的单击等。

Input类中和鼠标输入有关的方法和变量如下图所示:

【Unity】7.2 鼠标输入 Unity3D教程 第1张

在Unity中,鼠标位置用屏幕的像素坐标表示,屏幕左下角为坐标原点(0,0),右上角为(screen.width,screen.height),其中screen.width为屏幕分辨率的宽度,screen.height为屏幕分辨率的高度。

mousePosition的变量类型为Vector3,,其中x分量对应水平坐标,y分量对应垂直坐标,z分量始终为0。

CetMouseButtonDown、CetMouseButtonUp、CetMouseButton这3个方法需要传入参数来指定判断哪个鼠标按键,0对应左键,1对应右键,2对应中键。

二、基本用法示例

下面的代码演示了如何响应鼠标单击事件(0对应鼠标左键,1对应鼠标右键,2对应鼠标中键)。

void Update()

{

//按下鼠标左键

if(Input.GetMouseButtonDown(0))

{

//...

}

//按住鼠标左键

if(Input.GetMouseButton(0))

{

//...

}

//抬起鼠标左键

if(Input.GetMouseButtonUp(0))

{

//...

}

//按下鼠标右键

if(Input.GetMouseButtonDown(1))

{

//...

}

//按住鼠标右键

if(Input.GetMouseButton(1))

{

//...

}

//抬起鼠标右键

if(Input.GetMouseButtonUp(1))

{

//...

}

}

示例(Demo2_1_RotateExample.unity)

该例子演示如何根据鼠标移动距离来旋转模型进行观察。

将下面的脚本(RotateExample.cs文件)添加到要旋转的模型上,模型就会跟随鼠标的移动而旋转:

【Unity】7.2 鼠标输入 Unity3D教程 第2张

using UnityEngine;using System.Collections;publicclass RotateExample : MonoBehaviour
{    publicfloat horizontalSpeed = 6.0f;    publicfloat verticalSpeed = 6.0f;    void Update()
    {        float h = horizontalSpeed * Input.GetAxis("Mouse X");        float v = verticalSpeed * Input.GetAxis("Mouse Y");
        transform.Rotate(v, h, 0);
    }
}

【Unity】7.2 鼠标输入 Unity3D教程 第3张

运行效果:

【Unity】7.2 鼠标输入 Unity3D教程 第4张


评论列表暂无评论
发表评论