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_424294675 天前
Unity 调用Steamworks API 的 SteamUserStats.RequestCurrentStats()报错
unity·游戏引擎·steamwork
HoFunGames6 天前
Unity小地图,Easy Minimap System MT-GPS插件
unity·游戏引擎
wy3258643646 天前
Unity 新输入系统InputSystem(基本操作)
unity·c#·游戏引擎
WarPigs6 天前
着色器multi_compile笔记
unity·着色器
ECHO飞跃 0126 天前
Unity2019 本地推理 通义千问0.5-1.5B微调导入
人工智能·深度学习·unity·llama
Unity游戏资源学习屋6 天前
【Unity UI资源包】GUI Pro - Casual Game 专为休闲手游打造的专业级UI资源包
ui·unity
冰凌糕6 天前
Unity3D Shader 顶点法线外扩实现描边效果
unity
小菱形_6 天前
【Unity】TimeLine
unity·游戏引擎
小贺儿开发7 天前
Unity3D 自动化物流分拣模拟
运维·科技·unity·自动化·人机交互·传送带·物流分拣
EQ-雪梨蛋花汤7 天前
【3D可视化】基于 Unity 的智慧体育馆三维信息可视化大屏实践
3d·unity·信息可视化