当前位置: 首页 > news >正文

Unity 之 Input类

文章目录

  • 总述
  • 具体介绍

在这里插入图片描述

总述

Input 类是 Unity 中用于处理用户输入的重要工具,它允许您获取来自键盘、鼠标、触摸屏和控制器等设备的输入数据。通过 Input 类,您可以轻松地检测按键、鼠标点击、鼠标移动、触摸、控制器按钮等用户输入事件。以下是关于 Input 类的详细介绍:

  1. 按键输入: 您可以使用 Input.GetKey(KeyCode key) 方法来检测是否按下了指定的键。例如,Input.GetKey(KeyCode.W) 可以用来检测玩家是否按下了"W"键。

  2. 鼠标点击: 使用 Input.GetMouseButtonDown(int button) 方法可以检测鼠标按下事件。button 参数用于指定鼠标按钮,0表示左键,1表示右键,2表示中键。

  3. 鼠标移动: 通过 Input.GetAxis("Mouse X")Input.GetAxis("Mouse Y") 可以获取鼠标在水平和垂直方向上的移动距离。

  4. 触摸输入: 对于移动设备,您可以使用 Input.touches 数组来获取当前的触摸事件。每个触摸事件都包含有关触摸位置、状态和标识符的信息。

  5. 控制器输入: 对于游戏控制器,您可以使用类似于按键输入的方法来检测按钮是否被按下,如 Input.GetButtonDown(string buttonName)

  6. 轴输入: 除了按键和按钮,您还可以检测轴的输入,如控制器的摇杆。使用 Input.GetAxis(string axisName) 可以获取轴的值。

  7. 按键释放: 您可以使用 Input.GetKeyUp(KeyCode key) 方法来检测按键是否释放。

  8. 虚拟轴和按钮: 在 Unity 中,您还可以设置虚拟轴和虚拟按钮,这些虚拟输入可以模拟实际输入设备,使得代码更具有可移植性。

具体介绍

以下是关于 Input 类中每个要点的详细代码示例和解释:

  1. 按键输入:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){if (Input.GetKey(KeyCode.W)){Debug.Log("W键被按下!");}}
}

在这个示例中,Input.GetKey(KeyCode.W) 方法用于检测是否按下了"W"键。如果按下了"W"键,将输出一条日志信息。

  1. 鼠标点击:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){if (Input.GetMouseButtonDown(0)){Debug.Log("鼠标左键被按下!");}}
}

在这个示例中,Input.GetMouseButtonDown(0) 方法用于检测鼠标左键是否被按下。如果鼠标左键被按下,将输出一条日志信息。

  1. 鼠标移动:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){float mouseX = Input.GetAxis("Mouse X");float mouseY = Input.GetAxis("Mouse Y");Debug.Log("鼠标X轴移动:" + mouseX);Debug.Log("鼠标Y轴移动:" + mouseY);}
}

在这个示例中,Input.GetAxis("Mouse X")Input.GetAxis("Mouse Y") 方法用于获取鼠标在水平和垂直方向上的移动距离。如果鼠标水平移动,将输出相应的鼠标移动信息。

  1. 触摸输入:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){if (Input.touchCount > 0){Touch touch = Input.GetTouch(0);Debug.Log("触摸位置:" + touch.position);}}
}

在这个示例中,Input.touchCount 用于获取当前触摸事件的数量。如果有触摸事件,Input.GetTouch(0) 方法将返回第一个触摸事件的信息,包括位置等。

  1. 控制器输入:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){if (Input.GetButtonDown("Jump")){Debug.Log("跳跃按钮被按下!");}}
}

在这个示例中,Input.GetButtonDown("Jump") 方法用于检测控制器上的"Jump"按钮是否被按下。如果按钮被按下,将输出一条日志信息。

  1. 轴输入:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){float horizontalInput = Input.GetAxis("Horizontal");float verticalInput = Input.GetAxis("Vertical");Debug.Log("水平输入:" + horizontalInput);Debug.Log("垂直输入:" + verticalInput);}
}

在这个示例中,Input.GetAxis("Horizontal")Input.GetAxis("Vertical") 方法用于获取水平和垂直方向上的轴输入值。如果玩家在控制器或键盘上移动,将输出相应的输入值。

  1. 按键释放:
using UnityEngine;public class InputExample : MonoBehaviour
{void Update(){if (Input.GetKeyUp(KeyCode.W)){Debug.Log("W键被释放!");}}
}

在这个示例中,Input.GetKeyUp(KeyCode.W) 方法用于检测"W"键是否被释放。如果"W"键被释放,将输出一条日志信息。

  1. 虚拟轴和按钮:

在 Unity 编辑器中设置虚拟轴和按钮,然后可以使用类似于上述的方法来获取虚拟输入。

总之,这些代码示例演示了如何使用 Input 类来处理用户输入,从键盘、鼠标、触摸屏到控制器等不同设备的输入事件。通过这些方法,您可以实现丰富的游戏逻辑和交互。

相关文章:

Unity 之 Input类

文章目录 总述具体介绍 总述 Input 类是 Unity 中用于处理用户输入的重要工具,它允许您获取来自键盘、鼠标、触摸屏和控制器等设备的输入数据。通过 Input 类,您可以轻松地检测按键、鼠标点击、鼠标移动、触摸、控制器按钮等用户输入事件。以下是关于 I…...

亚信科技AntDB数据库连年入选《中国DBMS市场指南》代表厂商

近日,全球权威ICT研究与顾问咨询公司Gartner发布了2023年《Market Guide for DBMS, China》(即“中国DBMS市场指南”),该指南从市场份额、技术创新、研发投入等维度对DBMS供应商进行了调研。亚信科技是领先的数智化全栈能力提供商…...

AMBA总线协议(3)——AHB(一)

目录 一、前言 二、什么是AHB总线 1、概述 2、一个典型的基于AHB总线的微处理器架构 3、基本的 AHB 传送特性 三、AMBA AHB总线互联 四、小结 一、前言 在之前的文章中我们初步的了解了一下AMBA总线中AHB,APB,AXI的信号线及其功能,从本文开始我们…...

Git commit与pull的先后顺序

Git commit与pull的先后顺序_git先pull再commit_Mordor Java Girl的博客-CSDN博客 ​ 编辑yucoang2020.04.21 回复 28 先pull再commit的话, 你的commit也就不再纯粹了. 这一个commit不再是"你所编辑的xxx功能, 而是"别人所编辑的你所编辑的xxx". 我认为提交历…...

HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制ForEach循环渲染

ForEach基于数组类型数据执行循环渲染。说明,从API version 9开始,该接口支持在ArkTS卡片中使用。 一、接口描述 ForEach(arr: any[], itemGenerator: (item: any, index?: number) > void,keyGenerator?: (item: any, index?: number) > stri…...

Powered by Paraverse | 平行云助力彼真科技打造演出“新物种”

01 怎么看待虚拟演出 彼真科技 我们怎么看待虚拟演出? 虚拟演出给音乐人或者音乐行业带来了哪些新的机会?通过呈现一场高标准的虚拟演出,我们的能力延伸点在哪里? 先说一下我们认知里的虚拟演出的本质: 音乐演出是一…...

企微配置回调服务

1、企微配置可信域名 2、企微获取成员userID 3、企微获取用户敏感数据 4、企微配置回调服务 文章目录 一、简介1、概述2、相关文档地址 二、企微配置消息服务器1、配置消息接收参数2、参数解析3、参数拼接规则 三、代码编写—使用已有库1、代码下载2、代码修改3、服务代码编写 …...

机器人远程控制软件设计

机器人远程控制软件设计 That’s all....

面试题-React(二):React中的虚拟DOM是什么?

一、什么是虚拟DOM? 虚拟DOM是React的核心概念之一,它是一个轻量级的JavaScript对象树,用于表示真实DOM的状态。在React中,当数据发生变化时,首先会在虚拟DOM上执行DOM更新,而不是直接操作真实DOM。然后&a…...

分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

要解决的问题 如何记录请求经过多个分布式服务的信息,以便分析问题所在?如何保证这些信息得到完整的追踪?如何尽可能不影响服务性能? 追踪 当用户请求到达前端A,将会发送rpc请求给中间层B、C;B可以立刻作…...

【IEEE会议】第二届IEEE云计算、大数据应用与软件工程国际学术会议 (CBASE2023)

第二届IEEE云计算、大数据应用与软件工程国际学术会议 (CBASE2023) 随着大数据时代的到来,对数据获取的随时性和对计算的需求也在逐渐增长。为推动大数据时代的云计算与软件工程的发展,促进该领域学术交流,在CBASE 2022成功举办的…...

Streamlit项目:基于讯飞星火认知大模型开发Web智能对话应用

文章目录 1 前言2 API获取3 官方文档的调用代码4 Streamlit 网页的搭建4.1 代码及效果展示4.2 Streamlit相关知识点 5 结语 1 前言 科大讯飞公司于2023年8月15日发布了讯飞认知大模型V2.0,这是一款集跨领域知识和语言理解能力于一体的新一代认知智能大模型。前日&a…...

[Vue]解决npm run dev报错node:internal/modules/cjs/loader:1031 throw err;

解决: 有2中方法,建议先尝试第一种,不行再第二种 第一种: 重新安装依赖环境 删除项目的node_modules文件夹,重新执行 # 安装依赖环境 npm install# 运行 npm run dev 我只用了第一种方法就可以了 ,第二种方法从别的博主那看到…...

nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址

一.构建环境 二.配置反向代理 1.基于源码安装的nginx环境下修改nginx.conf(设备1) 2.通过windows powershell进行修改hosts文件并测试 3.设备2和设备3上查看日志,可以看到访问来源都是代理服务器(2.190)而不是真实…...

【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现

思考 在解析请求之前我们要思考一个问题,我们解析的是其中的哪些内容? 对于最基本的实现,当然是请求类型,请求的url以及请求参数,我们可以根据请求的类型作出对应的处理,通过url在我们的mapstore中找到se…...

FL Studio21.1中文完整版Win/Mac

FL Studio All Plugins Edition【中文完整版 Win/Mac】适合音乐制作人/工作室使用,全套插件!(20.9新增Vintage Chorus,Pitch Shifter变调插件)FL Studio是超多顶级音乐人的启蒙首选!包括百大DJ冠军Martin Garrix&…...

基于Mysql+Vue+Django的协同过滤和内容推荐算法的智能音乐推荐系统——深度学习算法应用(含全部工程源码)+数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境MySQL环境VUE环境 模块实现1. 数据请求和储存2. 数据处理计算歌曲、歌手、用户相似度计算用户推荐集 3. 数据存储与后台4. 数据展示 系统测试工程源代码下载其它资料下载 前言 本项目以丰富的网易云音乐数据为基…...

Python Web开发 Django 简介

今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源。Django 的功能大而全,它提供的一站式解决的思路,能让开发者不用在…...

HAproxy搭建web集群

目录 一、HAproxy 概述 二、HAproxy 主要特性 三、HAproxy 负载均衡策略(八种) 四、LVS、Nginx、HAproxy区别 Nginx LVS HAproxy 五、HAproxy部署实战 问题总结: 一、HAproxy 概述 HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理&#xff0…...

临时用工小程序:一款便捷的用工管理软件

随着企业对人力资源需求的不断增长,临时用工需求也日益旺盛。为了满足这一需求,我们研发了一款名为“临时用工小程序”的软件系统,旨在帮助企业实现临时用工的高效管理。 一、技术栈介绍 后端技术栈 本系统采用Java语言作为开发语言&#…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt&#xff0c;并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径&#xff0c;并创建logs目录&#xff08;若不存在&#xff09; 3.递归遍历目录data&#xff0c;输出所有.csv文件的路径…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

VASP软件在第一性原理计算中的应用-测试GO

VASP软件在第一性原理计算中的应用 VASP是由维也纳大学Hafner小组开发的一款功能强大的第一性原理计算软件&#xff0c;广泛应用于材料科学、凝聚态物理、化学和纳米技术等领域。 VASP的核心功能与应用 1. 电子结构计算 VASP最突出的功能是进行高精度的电子结构计算&#xff…...

调试快捷键 pycharm vscode

目录 调试快捷键 pycharm vscode 修改快捷键 方法 1&#xff1a;通过菜单打开 方法 2&#xff1a;用快捷键打开 调试快捷键 pycharm Resume Program F9 Step Over F8 两个离的比较近&#xff0c;比较方便&#xff0c;比vscode的好。 vscode Continue F5 改为F9 S…...