输入与控制操作Unity为开发者提供了Input类库,其中包括键盘事件、鼠标事件和触摸事件等一切跨平台所需要的控制事件。

一、键盘事件

  1、按下事件

    Input.GetKeyDown():如果按键被按下,该方法将返回true,没有按下则返回false。

    // Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.A))
{
Debug.Log("您按下了A键");
}
if (Input.GetKeyDown(KeyCode.B))
{
Debug.Log("您按下了B键");
}
if (Input.GetKeyDown(KeyCode.Backspace))
{
Debug.Log("您按下了退格键");
}
if (Input.GetKeyDown(KeyCode.F1))
{
Debug.Log("您按下了F1键");
}
}

直接把代码附加到主摄像头

  2、抬起事件

     Input.GetKeyUp()方法得到抬起事件。方法和按下事件相同。

#region 抬起事件
if (Input.GetKeyUp(KeyCode.A))
{
Debug.Log("您抬起了A键");
}
if (Input.GetKeyUp(KeyCode.B))
{
Debug.Log("您抬起了B键");
}
if (Input.GetKeyUp(KeyCode.Backspace))
{
Debug.Log("您抬起了退格键");
}
if (Input.GetKeyUp(KeyCode.F1))
{
Debug.Log("您抬起了F1键");
}
#endregion

  3、长按事件

    监听键盘中某个按键是否一直处于被按下的状态,使用Input.GetKey()方法来判断。

       #region 长按事件
int count = ;
if (Input.GetKeyDown(KeyCode.A))
{
Debug.Log("A按下一次");
}
if (Input.GetKey(KeyCode.A))
{
count++;
Debug.Log("A被连续按了:"+count);
}
if (Input.GetKeyUp(KeyCode.A))
{
//抬起后清空帧数
count = ;
Debug.Log("A按键抬起");
}
#endregion

    

  4、任意键盘事件

    在常见游戏中,读取完资源后,会提示玩家按任意键继续操作anyKeyDown

        

二、鼠标事件

  和键盘事件一样,鼠标一般只有3个按键,左键、右键和中键。具体如下:

  1、按下事件

    Input.GetMouseButtonDown()来判断鼠标哪个按键被按下:如果参数为0,则代表鼠标左键被按下,

                                 参数为1代表鼠标右键被按下,

                                 参数为2代表鼠标中键被按下

  2、抬起事件

    Input.GetMouseButtonUp()方法监听鼠标按键的抬起事件

  3、长按事件

    使用Input.GetMouseButton()方法监听鼠标某个按键是否一直处于按下状态。

14-03-10

GUI.Button 补充

当使用tooltip时 需要添加一个label这点和webform不一样。

using UnityEngine;
using System.Collections; public class ButtonScript : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { } void OnGUI()
{
//if (Time.time%2 > 1)
//{
if (GUI.Button(new Rect(10f, 10f, 100f, 60f), "Hello"))
{
print("你单击了Hello");
} GUI.Button(new Rect(10f, 80f, 100f, 60f), new GUIContent("我是按钮","这是一个提示")); GUI.Label(new Rect(10f, 160f, 100f, 60f), GUI.tooltip);
//}
}
}

效果:

Unity3D笔记十六 输入输出-键盘事件、鼠标事件的更多相关文章

  1. WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案

    目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...

  2. winform中键盘和鼠标事件的捕捉和重写(转)

    在 编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时, 希望无论当前哪个控件获得焦点,当用户按上.下.左. ...

  3. winform中键盘和鼠标事件的捕捉和重写

    在编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时,希望无论当前哪个控件获得焦点,当用户按上.下.左.右键 ...

  4. python3.4学习笔记(十六) windows下面安装easy_install和pip教程

    python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安 ...

  5. WPF之路-键盘与鼠标事件 - 简书

    原文:WPF之路-键盘与鼠标事件 - 简书 键盘事件 事件类型分为以下几个类型 生命周期事件:在元素加载与卸载的时候发生 鼠标事件:鼠标动作 键盘事件:键盘动作 手写笔事件:适用于win7以上的系统 ...

  6. cocos2d-x 键盘和鼠标事件

    出了菜单可以响应用户事件外,cocos2d中的层(Layer)也可以响应事件.层能够自动响应窗口事件,这些事件主要是键盘和鼠标事件,cocos2d中事件处理是通过Pyglet的事件处理完成的. 1.键 ...

  7. Selenium2+python自动化12-操作元素(键盘和鼠标事件)

    前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

  8. 第二十六课:jQuery对事件对象的修复

    因为原生的event对象,在不同浏览器下,有不同的属性和方法,因此需要用jQuery进行兼容. jQuery在这里分两步走,首先创建一个伪事件类jQuery.Event(jQuery里面自定义的事件类 ...

  9. 自动化测试-8.selenium操作元素之键盘和鼠标事件

    前言 在前面的几篇中重点介绍了一些元素的定位方法,定位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

随机推荐

  1. Android学习之——ListView下拉刷新

    背景知识 ListView使用非常广泛,对于使用ListView的应用来说,下拉刷新是必不可少要实现的功能. 我们常用的微博.网易新闻,搜狐新闻都使用了这一功能,如下图所示.     微博 搜狐新闻 ...

  2. SQL随机生成6位数字

    SELECT RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 6)

  3. Tensorflow同时加载使用多个模型

    在Tensorflow中,所有操作对象都包装到相应的Session中的,所以想要使用不同的模型就需要将这些模型加载到不同的Session中并在使用的时候申明是哪个Session,从而避免由于Sessi ...

  4. 一道简单的把ArrayList中的正负数组分开并求得边界索引的题目

    给定一个List,里面存放的一组整数有正数和负数,要求把正数和负数分开,并得到正数和负数分割线索引(不要求排序,不能使用多层循环) 解答方法并不算太复杂,重点注意边界条件和极端条件(全是正或者全是负) ...

  5. Python基础教程学习笔记:第二章 列表和元组

    1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...

  6. c# windows服务

    参考:https://www.cnblogs.com/knowledgesea/p/3616127.html 序言 前段时间做一个数据迁移项目,刚开始用B/S架构做的项目,但B/S要寄存在IIs中,而 ...

  7. java.net.NoRouteToHostException:无法指定被请求的地址

    最近在做一个新项目的poc压测的时候发现了如下问题: TPS一直突破不了5000,按照计算理论上应该可以达到8000 tps/s左右的,查看数据库端口情况,吓一跳... netstat -ant | ...

  8. Java -- 异常的捕获及处理 -- throws与throw关键字

    7.2 throws 与 throw关键字 7.2.1 throws 关键字 在定义一个方法时可以使用throws关键字声明,使用throws声明的方法标识此方法不处理异常,而交给方法的调用处进行处理 ...

  9. POJ 3258 River Hopscotch(二分法搜索)

    Description Every year the cows hold an event featuring a peculiar version of hopscotch that involve ...

  10. Go之简单并发

    func Calculate(id int) { fmt.Println(id) } 使用go来实现并发 func main() { for i := 0; i < 100; i++ { go ...