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

目录

[1 用Input接口去监测:鼠标,键盘,虚拟轴,虚拟按键](#1 用Input接口去监测:鼠标,键盘,虚拟轴,虚拟按键)

[2 鼠标 MouseButton 事件](#2 鼠标 MouseButton 事件)

[2.1 鼠标的基本操作](#2.1 鼠标的基本操作)

[2.2 测试代码](#2.2 测试代码)

[2.3 测试情况](#2.3 测试情况)

[3 键盘Key事件](#3 键盘Key事件)

[3.1 键盘的枚举方式](#3.1 键盘的枚举方式)

[3.2 测试代码同上](#3.2 测试代码同上)

[3.3 测试代码同上](#3.3 测试代码同上)

[3.4 测试结果](#3.4 测试结果)

[4 Joystick虚拟轴 Axis](#4 Joystick虚拟轴 Axis)

[4.1 什么是虚拟轴](#4.1 什么是虚拟轴)

[4.2 虚拟轴的设置](#4.2 虚拟轴的设置)

[4.3 虚拟轴的写法](#4.3 虚拟轴的写法)

[4.4 测试代码同上](#4.4 测试代码同上)

[4.5 虚拟轴的测试](#4.5 虚拟轴的测试)

[5 虚拟按键 Button](#5 虚拟按键 Button)

[5.1 什么是虚拟按键](#5.1 什么是虚拟按键)

[5.2 虚拟按键](#5.2 虚拟按键)

[5.3 测试代码同上](#5.3 测试代码同上)

[5.4 测试结果](#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 测试代码

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestKey : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void 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 测试结果

相关推荐
JIes__1 小时前
Unity(二)——核心系统
unity·游戏引擎
独处东汉2 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity
天人合一peng5 小时前
Unity 中 Text-TextMeshPro的获取与赋值
unity·游戏引擎
天人合一peng1 天前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
_乐无1 天前
Unity加载gly 点云 高斯泼溅渲染
unity
坚定信念,勇往无前1 天前
unity发布BuildWebGL.wasm 加载过慢
unity·wasm
avi91111 天前
Unity Data Excel读取方法+踩坑记;和WPS Excel的一些命令
unity·游戏引擎·excel·wps·data
天人合一peng1 天前
Unity 中Canvas 或image打勾时不显示
unity
淡海水2 天前
【节点】[Houndstooth节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·houndstooth
微:xsooop3 天前
iOS上架被拒4.3(a) 10次到过审历程
flutter·unity·ios·uniapp