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

相关推荐
HH‘HH20 小时前
Unity通过OPC UA工业协议连接工业设备实战指南
unity·游戏引擎
め.1 天前
定点数运算库
算法·unity
点量云实时渲染-小芹1 天前
UE/Unity/Webgl模型在信创服务器上实时渲染推流的可行性分析
unity·webgl·云渲染信创·国产实时渲染·ue信创云推流
郝学胜-神的一滴1 天前
[简化版 GAMES 104] 现代游戏引擎 02:拆解现代游戏引擎5+1层级架构,吃透引擎底层核心逻辑
c++·unity·架构·游戏引擎·图形渲染·unreal engine·系统设计
unityのkiven1 天前
Unity 中如何创建一片森林:享元模式能不能用?应该怎么用?
unity·游戏引擎·享元模式
LONGZETECH1 天前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
丁小未1 天前
Unity 几种常见合批手段的要求
游戏·unity·合批·srpbatcher·动态合批·静态合批
旧物有情2 天前
游戏开发常用架构 #MVP,MVC
游戏·unity·架构·mvc
勇踏前人未索之境2 天前
Unity打包运行于鸿蒙手机
unity·智能手机·harmonyos