zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    A.4.2虚函数 virtual 和多态的实现
    A.51,集合类 ArrayList。2,对字符串的处理(String)
    A.4.1类的继承(implement)
    Android ExpandableListView的使用
    Android 使用SAX解析XML
    [转]Android 内存监测工具 DDMS > Heap .
    Android中 ExpandableList的使用2
    Android 横屏竖屏的切换
    Android 文件操作
    Android Preference的使用总结(很全很详细)以及SharedPreferences多个程序之间共享数据
  • 原文地址:https://www.cnblogs.com/rainmj/p/5415426.html
Copyright © 2011-2022 走看看