• 【Unity】7.2 鼠标输入


    分类:Unity、C#、VS2015

    创建日期:2016-04-21

    一、简介

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

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

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

    image

    在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文件)添加到要旋转的模型上,模型就会跟随鼠标的移动而旋转:

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

    运行效果:

    image
  • 相关阅读:
    八皇后 c++
    筛法求素数
    3月13号周练——2015 Multi-University Training Contest 9
    Mac搭建Git服务器—开启SSH
    push自定义动画
    学习:二维码、QR码、J4L-QRCode、java
    Java注解Annotation详解
    IOS 基于APNS消息推送原理与实现(JAVA后台)
    IOS学习笔记—苹果推送机制APNs
    linux yum命令详解
  • 原文地址:https://www.cnblogs.com/rainmj/p/5415426.html
Copyright © 2020-2023  润新知