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 测试结果

相关推荐
weixin_4242946727 分钟前
在Unity中,摄像机移动时出现“残影”或“闪烁”是常见问题,主要原因和处理方法。
unity·游戏引擎
天人合一peng1 小时前
unity 3d 通过游戏对象的名子查到其对象
游戏·unity·游戏引擎
纯属个人爱好2 小时前
Unity2020+PicoNeo3Pro开发
unity·vr
__water6 小时前
RHK《Unity接入DeepSeek问答》
unity·游戏引擎·智能问答·deepseek接入·deepseekapikey
康de哥7 小时前
MCP Unity + Claude Code 配置关键步骤
unity·mcp·claude code
美团骑手阿豪8 小时前
Unity3D大规模点击检测:GPU Picking vs MeshCollider + Raycast
unity
在路上看风景8 小时前
1.4 Unity运行时路径
unity·游戏引擎
在路上看风景1 天前
1.2 Unity资源分类
unity·游戏引擎
one named slash1 天前
BMFont在Unity中生成艺术字
unity·游戏引擎
郝学胜-神的一滴1 天前
图形学中的纹理映射问题:摩尔纹与毛刺的深度解析
c++·程序人生·unity·游戏引擎·图形渲染·unreal engine