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

embedded/2025/2/6 6:39:15/

目录

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/embedded/159953.html

相关文章

第 1 天:UE5 C++ 开发环境搭建,全流程指南

🎯 目标:搭建 Unreal Engine 5(UE5)C 开发环境,配置 Visual Studio 并成功运行 C 代码! 1️⃣ Unreal Engine 5 安装 🔹 下载与安装 Unreal Engine 5 步骤: 注册并安装 Epic Game…

修复使用unplugin-auto-import和unplugin-vue-components后tsc-vue报错的问题

在使用NaiveUI的过程中,引入了unplugin-auto-import和unplugin-vue-components。 这两个组件能自动引入vue方法和vue组件,提升了开发者体验。 但是在vscode中,源码里未手动引用而直接用的方法和组件还是被标红,提示找不到&#x…

【llm对话系统】大模型 Llama 如何进行量化和推理

1. 写在前面 Llama 是 Meta AI 开源的一系列大型语言模型 (LLM),在各种 NLP 任务上表现出色。然而,这些模型通常具有庞大的参数量,需要大量的计算资源和内存才能进行推理。为了降低 Llama 模型的部署成本,并提高其推理速度,我们可以采用模型量化 (Quantization) 技术。 …

Mac M1 ComfyUI 中 AnyText插件安装问题汇总?

Q1:NameError: name ‘PreTrainedTokenizer’ is not defined ? 该项目最近更新日期为2024年12月,该时间段的transformers 版本由PyPI 上的 transformers 页面 可知为4.47.1. A1: transformers 版本不满足要求,必须降级transformors &#…

Linux系统 环境变量

环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局…

【PyQt】lambda函数,实现动态传递参数

为什么需要 lambda? 在 PyQt5 中,clicked 信号默认会传递一个布尔值(表示按钮是否被选中)。如果我们希望将按钮的文本内容传递给槽函数,需要通过 lambda 函数显式传递参数。 这样可以实现将按钮内容传递给槽函数&…

Python调用C++程序实现

基本环境说明 由于C的执行速度快、控制粒度细,Python上层开发方便、迭代速度快,故经常可以遇到C写好接口供Python调用的情况,但是其中bug还不少(尤其是动态链接库一个链接另一个,就会产生比较复杂的关系) …

MySQL 插入数据

MySQL 插入数据 引言 在数据库管理系统中,MySQL 是一款广泛使用的开源关系型数据库管理系统。数据插入是数据库操作的基础之一,它涉及将数据添加到数据库的表中。本文将详细介绍 MySQL 中插入数据的方法,包括基本的插入语法、多行插入、以及…