【Unity】7.3 键盘输入

分类:Unity、C#、VS2015

创建日期:2016-04-21

一、简介

键盘事件也是桌面系统中的基本输入事件。和键盘有关的输入事件有按键按下、按键释放、按键长按,Input类中可以通过下图所示的方法来处理:

上面的方法通过传入按键名称字符串或者按键编码KeyCode指定要判断的按键。

下图所示是常用按键的按键名与KeyCode编码,供读者参考,完整的按键编码请查阅Unity用户手册。

二、基本用法示例

下面的代码演示了如何响应键盘按键事件:

void Update()

{

//按下键盘A键

if(Input.GetKeyDown(KeyCode.A))

{

//...

}

//按住键盘A键

if(Input.GetKey(KeyCode.A))

{

//...

}

//抬起键盘A键

if(Input.GetKeyUp(KeyCode.A))

{

//...

}

//按下键盘左Shift键

if(Input.GetKeyDown(KeyCode.LeftShift))

{

//...

}

//按住键盘左Shift键

if(Input.GetKey(KeyCode.LeftShift))

{

//...

}

//抬起键盘左Shift键

if(Input.GetKeyUp(KeyCode.LeftShift))

{

//...

}

}

示例(Demo3_1_ControlExample.unity)

该例子演示如何控制模型在x平面上移动。

下面的代码演示了如何得到Horizontal轴的值

void Update () {

//得到Horizontal轴的值

float axisH = Input.GetAxis("Horizontal");

}

下面的代码用键盘方向键或者W、A、S、D按键来控制模型在x平面上移动,只需要将脚本(ControlExample.cs文件)添加到模型上即可:

using UnityEngine;
using System.Collections;
public class ControlExample : MonoBehaviour
{
    public float speed = 10.0f;          //行驶速度
    public float rotationSpeed = 100.0f; //转向速度
    void Update()
    {
        //使用上下箭头或者W、S键来控制前进后退
        float translation = Input.GetAxis("Vertical") * speed;
        //使用左右箭头或者A、D键来控制左右旋转
        float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
        translation *= Time.deltaTime;
        rotation *= Time.deltaTime;
        //在x-z平面上移动
        transform.Translate(0, 0, translation);
        transform.Rotate(0, rotation, 0);
    }
}

运行效果:

时间: 2024-08-01 22:47:30

【Unity】7.3 键盘输入的相关文章

virt-manager 解决kvm 不能键盘输入的问题

virt-manager  解决kvm 不能键盘输入的问题

Unity Android设备的输入

Unity Android设备的输入 1依据屏幕位置输入 有的时候也许是为了整个有些风格的干净,减少屏幕上的UI图标,以至于摒弃了虚拟按键这种常用的输入方式.为了替代虚拟按键的输入方式而选择了依据点击事件发生在屏幕中的位置而控制对象的移动等.比如将整个手机屏幕划分为左右两个区域,左边区域负责移动控制,右边区域负责技能释放. 这里我们需要处理的问题分别是点击事件的获取及屏幕信息的获取,下面这两个方面的API文档. 点击事件:http://wiki.ceeger.com/script/unityen

Java键盘输入的几种方式,大爱Scanner

1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.util.Scanner; 5 6 public class EnterTest { 7 8 public static void main(String[] args) { //主方法 9 CharTest(); //调用System.in方法 10 ReadTest()

通过VNC连接远程服务器,然后登陆服务器上的虚拟机,出现键盘输入问题的解决方法

前几天由于要在服务器上装一个虚拟机,然后就选择了vmware workstation,装好之后,进入虚拟机中的centOS系统,发现键盘上的Cpas Lock键不起作用,按下之后还是输入小写,而且按住shift + ,不会出现 ‘<' 而是出现 ‘>',这怎么可以,这完全没法在虚拟机中使用呀. 因为我是通过VNC连接到服务器,原先一直认为是vmware软件的问题,然后就换vmware的版本,结果还是不行:后来我就直接试了下直接在服务器上链接一个屏幕,然后使用vmware,发现完全没有这个问题:

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

/**10.使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器. 服务器接收客户端发送的字符串,反转之后发回客户端.客户端接收并打印. * 客户端*/ import java.io.*; import java.net.*; public class Test10_Client { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.0.

Java中从键盘输入的三种方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class EnterTest { public static void main(String[] args) { //主方法 CharTest(); //调用System.in方法 ReadTest(); //调用ReadTest方法 Scan

键盘输入

运行时后面跟上参数:java hello a m m 使用Scanner获取键盘输入: Scanner sc = new Scanner(System.in) hasNextxxx():是否还有下一个输入项,xxx代表Int,Long等基础类型,如果只是判断是否包含下一个字符串,直接用hasNext() nextXXX():获取下一个输入项 useDelimiter("\n"):设置分隔符,默认使用空白作为分隔符(空格,回车,tab) boolean hasNextLine():是否还

键盘输入三个整数,实现从小到大排序

package study01; import java.util.Scanner; public class Sort { /** * 需求:由键盘输入三个整数分别存入变量a.b.c,对他们进行 排序(使用if-else),并且从小到大输出 * */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("a="); int a = sc.nextI

有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)

/* * 3. 有五个学生,每个学生有3门课(语文.数学.英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { publi

JAVA问题总结13-从键盘输入并输出

JAVA问题总结13-从键盘输入并输出,加从键盘输入三个数,输出并按从大到小排序. package java2; /** * 这是一个从键盘输入并输出的一个test * @author xubo601450868 * @time 2015.8.26 * @version v1.0 * */ import java.util.Scanner; public class test4 { public static void main(String[] args){ Scanner s=new Sca