unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键

server/2025/2/3 17:10:12/

目录

1 用Input接口去监测:鼠标,键盘,虚拟轴,虚拟按键

2 鼠标 MouseButton 事件

2.1 鼠标的基本操作

2.2 测试代码

2.3 测试情况

3 键盘Key事件

3.1 键盘的枚举方式

3.2 测试代码同上

3.3 测试代码同上

3.4 测试结果

4 Joystick虚拟轴 Axis

4.1 什么是虚拟轴

4.2 虚拟轴的设置

4.3 虚拟轴的写法

4.4  测试代码同上

4.5 虚拟轴的测试

5 虚拟按键 Button

5.1 什么是虚拟按键

5.2 虚拟按键

5.3 测试代码同上

5.4 测试结果


1 用Input接口去监测:鼠标,键盘,虚拟轴,虚拟按键

  • 用Input接口去监测: 如 Input.GetMouseButton()
  • 鼠标,MouseButton
  • 键盘,Key
  • 虚拟轴,Axis
  • 虚拟按键,Button

还是挂上脚本来测试

2 鼠标 MouseButton 事件

2.1 鼠标的基本操作

  • "按下了鼠标左键"
  • Input.GetMouseButtonDown(0)

  • "持续按下鼠标左键"
  • Input.GetMouseButton(0)

  • "抬起了鼠标左键"
  • Input.GetMouseButtonUp(0)

2.2 测试代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TestKey : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){//鼠标相关if(Input.GetMouseButtonDown(0)){Debug.Log("按下了鼠标左键");}if(Input.GetMouseButton(0)){Debug.Log("持续按下鼠标左键");}if(Input.GetMouseButtonUp(0)){Debug.Log("抬起了鼠标左键");}//键盘相关if(Input.GetKeyDown(KeyCode.A)){Debug.Log("按下了A");}if(Input.GetKey(KeyCode.A)){Debug.Log("持续按下A");}if(Input.GetKeyUp("a")){Debug.Log("抬起了A");}//虚拟轴相关float horizontal=Input.GetAxis("Horizontal");float vertical=Input.GetAxis("Vertical");Debug.Log(horizontal + " " + vertical);//虚拟按键if(Input.GetButtonDown("Jump")){Debug.Log("按下了Jump空格");}if(Input.GetButton("Jump")){Debug.Log("持续按Jump空格");}if(Input.GetButtonUp("Jump")){Debug.Log("抬起了Jump空格");}}
}

2.3 测试情况

3 键盘Key事件

3.1 键盘的枚举方式

  • 键盘的枚举方式
  • GetKey(KeyCode.A)
  • GetKey("a")

3.2 测试代码同上

  • 按下了按键A
  • Input.GetKeyDown(KeyCode.A)
  • 持续按住A
  • Input.GetKey(KeyCode.A)
  • 松开了A
  • Input.GetKeyUp("a")

3.3 测试代码同上

3.4 测试结果

4 Joystick虚拟轴 Axis

4.1 什么是虚拟轴

4.2 虚拟轴的设置

  • 默认的,只有水平和垂直的是虚拟轴,其他其实都是虚拟按键

4.3 虚拟轴的写法

  • 默认的,只有水平和垂直的是虚拟轴,其他其实都是虚拟按键
  • float horizontal=Input.GetAxis("Horizontal");
  • float vertical=Input.GetAxis("Vertical");
  • Debug.Log(horizontal + " " + vertical);

4.4  测试代码同上

4.5 虚拟轴的测试

  • 比如实测水平轴
  • 按下 a s 水平轴的数值,会持续的变化

5 虚拟按键 Button

5.1 什么是虚拟按键

  • 虚拟按键,和虚拟轴不一样,只有1个按键
  • 比如jump轴,只有1个 space按键

5.2 虚拟按键

  • "按下了Jump空格"     Input.GetButtonDown("Jump")
  • "持续按Jump空格"     Input.GetButton("Jump")
  • "抬起了Jump空格"    Input.GetButtonUp("Jump")

5.3 测试代码同上

5.4 测试结果


http://www.ppmy.cn/server/164663.html

相关文章

基于语义-拓扑-度量表征引导的大语言模型推理的空中视觉语言导航

1. 摘要翻译及主要贡献点 摘要: 空中视觉语言导航(VLN)是一项新兴任务,它使无人机能够通过自然语言指令和视觉线索在户外环境中导航。由于户外空中场景中复杂的空间关系,这项任务仍然具有挑战性。本文提出了一种端到…

车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…

LVM 逻辑卷管理

LVM介绍 管理磁盘、使用磁盘的一种方式的称呼 优势: 1、在不影响数据的情况下,随意扩容、缩容 2、支持快照功能,方便数据备份 LVM工作流程 磁盘/分区 ....> pv(物理卷)....> vg(卷组)...…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror_init()函数

目录 ngx_strerror_init()函数声明 ngx_int_t 类型声明定义 intptr_t 类型 ngx_strerror_init()函数实现 NGX_HAVE_STRERRORDESC_NP ngx_strerror_init()函数声明 在 nginx.c 的开头引入了: #include <ngx_core.h> 在 ngx_core.h 中引入了 #include <ngx_er…

Windsurf cursor vscode+cline 与Python快速开发指南

Windsurf简介 Windsurf是由Codeium推出的全球首个基于AI Flow范式的智能IDE&#xff0c;它通过强大的AI助手功能&#xff0c;显著提升开发效率。Windsurf集成了先进的代码补全、智能重构、代码生成等功能&#xff0c;特别适合Python开发者使用。 Python环境配置 1. Conda安装…

https数字签名手动验签

以bing.com 为例 1. CA 层级的基本概念 CA 层级是一种树状结构&#xff0c;由多个层级的 CA 组成。每个 CA 负责为其下一层级的实体&#xff08;如子 CA 或终端实体&#xff09;颁发证书。层级结构的顶端是 根 CA&#xff08;Root CA&#xff09;&#xff0c;它是整个 PKI 体…

K8S ReplicaSet 控制器

一、理论介绍 今天我们来实验 ReplicaSet 控制器&#xff08;也叫工作负载&#xff09;。官网描述如下&#xff1a; 1、是什么&#xff1f; ReplicaSet 副本集&#xff0c; 维护一组稳定的副本 Pod 集合。 2、为什么需要&#xff1f; 解决 pod 被删除了&#xff0c;不能自我恢…

Android 13 取色引擎详解

1、 应用如何获取壁纸颜色&#xff1f; 1.1、调用getWallpaperColors获取壁纸颜色 其实WallpaperManager从很早之前就提供了getWallpaperColors接口 /frameworks/base/core/java/android/app/WallpaperManager.java ...UnsupportedAppUsagepublic Nullable WallpaperColors …