当前位置: 首页 > 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语言作为开发语言&#…...

苹果将在培训应用中采用AI生成主播,解决传统培训规模化与个性化难题

苹果培训应用引入AI生成主播据9to5mac报道,Aaron Perris在X平台披露,苹果公司将很快在其内部培训应用“Apple Sales Coach”中采用AI生成主播,用于制作销售培训视频。该应用由苹果此前的“SEED”应用更新而来,旨在向全球苹果销售合…...

谷歌报告:犯罪黑客用AI发现零日漏洞,AI黑客攻击已成为现实!

AI零日漏洞攻击首现周一,谷歌发布报告,首次确认犯罪黑客使用AI大模型发现了一个此前未知的零日漏洞,差点发动大规模攻击。这意味着安全界担心多年的「AI自动挖洞」从理论变为现实。在Anthropic的Mythos模型已找到数千个零日漏洞的背景下&…...

Nodeunit自定义reporters开发:打造个性化测试输出格式

Nodeunit自定义reporters开发:打造个性化测试输出格式 【免费下载链接】nodeunit Easy unit testing in node.js and the browser, based on the assert module. 项目地址: https://gitcode.com/gh_mirrors/no/nodeunit Nodeunit是一款简单易用的Node.js单元…...

YouTube长视频摘要失效真相(Gemini模型行为深度逆向分析)

更多请点击: https://intelliparadigm.com 第一章:YouTube长视频摘要失效真相(Gemini模型行为深度逆向分析) 近期大量开发者反馈 YouTube 长视频(>30 分钟)通过 Gemini API 生成的摘要内容空洞、重复或…...

精通 Harness架构 :DeerFlow 2.0 的 lead_agent 任务总调度 架构设计与实现解析

今天不聊虚的,我们直接切进核心代码。 看看它是怎么把责任链模式、配置驱动思维和任务编排哲学,严丝合缝地揉进 LangGraph 骨架里的。顺便对标一下微软 AutoGen AG2 最新的架构演进,你会发现,行业对 Agent 运行时(Age…...

为什么92%的用户调不出正宗120胶片感?揭秘Midjourney底层色彩映射矩阵与胶片光谱响应偏差

更多请点击: https://intelliparadigm.com 第一章:胶片感的视觉本质与数字复现困境 胶片感并非单一参数可定义的视觉效果,而是由卤化银晶体随机分布、显影化学反应非线性响应、颗粒噪点的空间相关性以及动态范围压缩特性共同构成的模拟物理现…...

openOii:开源工业信息集成框架架构解析与实战指南

1. 项目概述与核心价值最近在开源社区里,一个名为openOii的项目引起了我的注意。这个由开发者 Xeron2000 发起的项目,从名字上就透着一股“开放”和“工业”的气息。作为一个在工业自动化和数据集成领域摸爬滚打了十多年的老兵,我深知在制造业…...

如何轻松备份微信聊天记录:iOS用户的终极解决方案

如何轻松备份微信聊天记录:iOS用户的终极解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾经因为手机损坏或更换设备而丢失了珍贵的微信聊天记…...

大疆智图+B3DM切片+Cesium:5分钟搞定倾斜摄影三维模型在线发布

大疆智图B3DM切片Cesium:零代码实现倾斜摄影三维模型Web发布全指南 当无人机航拍的倾斜摄影数据需要快速在Web端展示时,技术栈的衔接往往成为最大障碍。本文将手把手带您实现从大疆智图生成B3DM切片到Cesium可视化呈现的完整流程,全程无需编写…...

Python 爬虫进阶技巧:多线程异步爬取大幅提升数据采集速度

前言 常规单线程爬虫采用串行阻塞式请求模式,严格按照 “请求页面 — 解析数据 — 保存入库 — 下一页请求” 的线性流程执行,每一次网络请求都需要等待服务器响应、网络传输延时完成后,才能发起下一次任务。在大批量站点列表、分页数据、多…...