Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
作者:mrr 发布时间:2023-06-01 18:01:45
获取当前键盘按键,代码如下:
using UnityEngine;
using System.Collections;
public class GetCurrentKey : MonoBehaviour {
KeyCode currentKey;
void Start ()
{
currentKey = KeyCode.Space;
}
void OnGUI()
{
if (Input.anyKeyDown)
{
Event e = Event.current;
if (e.isKey)
{
currentKey = e.keyCode;
Debug.Log("Current Key is : " + currentKey.ToString());
}
}
}
}
下面给大家介绍Unity3D鼠标、键盘的基本操作
键盘:
GetKey 当通过名称指定的按键被用户按住时返回true
GetKeyDown 当用户按下指定名称的按键时的那一帧返回true。
GetKeyUp 在用户释放给定名字的按键的那一帧返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) 用方向键或WASD键来模拟-1到1的平滑输入
键盘判断:
If(Input.GetKeyDown(KeyCode.A)){//KeyCode表示包含键盘所有键
print(“按下A键”); } If(Input.GetKeyUp(KeyCode.D)){//当按D键松开时
print(“松开D键”); } If(Input.GetAxis(“Horizontal")){//当按下水平键时
print(“按下水平键”); } If(Input.GetKeyUp("Verical“)){当按下垂直键时
print(“按下垂直键”); }
鼠标:
GetButton 根据按钮名称返回true当对应的虚拟按钮被按住时。
GetButtonDown 在给定名称的虚拟按钮被按下的那一帧返回true。
GetButtonUp 在用户释放指定名称的虚拟按钮时返回true。
鼠标判断:
if(Input.GetButton("Fire1")){//Fire1表示按下鼠标左键
print(“按下鼠标左键”); } if (Input.GetMouseButton(0)) {//0表示鼠标左键
Debug.Log("按下鼠标左键"); } if (Input.GetMouseButton(1)) {//1表示鼠标右键
Debug.Log("按下鼠标右键"); } if (Input.GetMouseButton(2)) {//2表示鼠标中键
Debug.Log("按下鼠标中键"); }
给物体施加普通力:
1、先给物体添加刚体
2、transform.rigidbody.AddForce(0,0,1000); 一个简单例子让小球撞破墙:
代码如下:
using UnityEngine;
using System.Collections;
public class Cube : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame void Update () {
if(Input.GetKey(KeyCode.W)){//当鼠标按下W键时,小球向前移动
transform.Translate(Vector3.forward);
}
if(Input.GetKey(KeyCode.S)){当鼠标按下S键时,小球向后移动
transform.Translate(Vector3.back);
天猫双十一活动
} if(Input.GetKey(KeyCode.A)){当鼠标按下A键时,小球向左移动
transform.Translate(Vector3.left);
}
if(Input.GetKey(KeyCode.D)){当鼠标按下D键时,小球向右移动
transform.Translate(Vector3.right);
} if(Input.GetButton("Fire1")){//当点击鼠标左键时,小球撞塌墙
transform.rigidbody.AddForce(0,0,200);//物体向前移动的力为200
}
}
}


猜你喜欢
- TimeSpan 结构 表示一个时间间隔。命名空间:System 程序集:mscorlib(在 mscorlib.dll 中)说
- 本文实例讲述了Android数据持久化之File机制。分享给大家供大家参考,具体如下:在使用Java SE平台开发C/S结构的软件中,Fil
- 线程间通信我们看下面的图我们来看线程间通信的原理:线程(Thread B)和线程(Thread A)通信, 首先线程A 必须实现同步上下文对
- 本文实例为大家分享了Unity3D Ui利用shader添加效果的具体代码,供大家参考,具体内容如下// Upgrade NOTE: rep
- ObjectUtils.isEmpty()和null区别分配内存和赋值的区别isEmpty():判断值是否为空,即使已经分配内存,但没有赋值
- 详解xamarin Android 实现ListView万能适配器早些时候接触xamarin Android 的列表,写了很多ListVie
- 今天我来写一篇关于利用WPF来实现Windows的资源管理器功能,当然只是局部实现这个功能,因为在很多时候我们需要来实现对本机
- 面向对象思想之封装或许大家都听说过java是纯面向对象语言,面向对象思想也就是我们常说的OOP,我们听说最多的思想就是继承,封装,多态,今天
- 下载和上传附件、发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时
- 快速普及1、mybatis是什么 mybatis是一个支持普通SQL查询,存储过
- 结构图: 抽象对象: abstract class Component  
- Spring Security OAuth2主要配置,注意application.yml最后的配置resource filter顺序配置,不
- 本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下package com.gj5u.publics.util;
- 调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先
- 前言我们平时在开发中,难免会遇到一些比较特殊的需求,就比如我们这篇文章的主题,一个关于圆弧滑动的,一般是比较少见的。其实在遇到这些东西时,不
- 本文实例为大家分享了Android实现选项菜单的具体代码,供大家参考,具体内容如下创建选项菜单步骤:(1)覆盖Activity的onCrea
- 以下通过3个知识点给大家讲解了上拉加载和下拉刷新的Fragment实现的方法,在对每个知识点介绍了一下用法。1.效果预览1.1.这个首页就是
- 实现的效果图:代码实现:tv = (TextView) findViewById(R.id.tv);String a = "有2年
- 一、前言二、案例需求1.编写login.html登录页面,username&password两个输入框2.使用Druid数据库连接池
- 我们先来看下运行效果图Form1.cs代码:using System;using System.Collections.Generic;us