前言:本文主要针对unity的脚本,本人学习时长不是很多,所以其中可能会出现错误,欢迎大佬指出,希望接下来的内容可以帮助到你。(Ok,叠甲结束,废话不多说,接下来开始正文)

unity键盘按ese弹出菜单 unity输入按键_浮点数


键盘鼠标,虚拟轴和手机的触控(本文主要讨论前两类)。这里我们要先有个概念,即unity的输入控制源自Input类,所以无论后面的方法是什么,前面一定要加Input.


一、键盘鼠标的输入控制

1.1鼠标

        先放要学的方法

button:0为左键,1为右键,2为中键

                GetMouseButton(int button)                                 按下或持续按住返回true

                GetMouseButtonDown(int button)                        按下瞬间返回一次true

                GetMouseButtonUp(int button)                            松开瞬间返回一次true

        下面展示用法

//脚本结构,通过unity中项目中右键 创建 > C#脚本 即可生成
using UnityEngine;

public class HelloWorld : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))//通过判断返回的值来执行
        {
            Debug.Log("Hello, World");
        }
    }
}

这部分不是很难,但唯一有一个要弄清的就是GetMouseButton和GetMouseButtonDown的区别

unity键盘按ese弹出菜单 unity输入按键_右键_02

 GetMouseButton和GetMouseButtonDown的区别

  • GetMouButton检测的是鼠标按钮在整个持续按住阶段的状态,返回 true 表示按下或持续按住,false 表示释放。(当持续按住,则会持续返回true)
  • GetMouseButtonDown只检测鼠标按钮在当前帧是否刚刚按下,返回 true 表示按下瞬间,false 表示未按下或已经释放。

1.2 键盘

有了前面的基础,相信你对接下来的内容的掌握应该是易如反掌

        放方法

                GetKey(KeyCode key)                                               用法基本和鼠标一样,但需要注意

填入的数据不一样

                GeKeyUp(KeyCode key)

        用法

using UnityEngine;

public class HelloWorld : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            Debug.Log("Hello, World");
        }
    }
}

可以看到几乎一样,唯一要注意的是GetKeyDown(KeyCode.A),记住要加KeyCode.。(在有提示的编译器中一般会有你想用的键位的代码提示的,如果你想用一些奇怪的键位的话,那只能请你自己去百度了)

好了,这便是第一部分,其实回过头来看确实还是比较简单的,那让我们再接再厉,开始虚拟轴的学习。

unity键盘按ese弹出菜单 unity输入按键_浮点数_03


 二、虚拟轴的输入控制

学习这个我们不同于前面,因为我们大家都懂鼠标和健盘是什么,但虚拟轴是什么?对于新手来说,“虚拟轴”就是一个完全新的概念,那我们接下来就先从虚拟轴的概念讲起。

        虚拟轴是什么?

在Unity中,虚拟轴(Virtual Axis)是用于表示输入的一种抽象概念。虚拟轴通常用于表示连续的输入,例如移动方向、摇杆的位置、滚轮的滚动等。它的值通常在-1到1之间,表示输入的强度或方向。(在网上没找到确切概念,这段选择截取GPT的解释)


这样的解释不知道你是否能看懂,这里我用我自己的理解再解释一遍

虚拟轴,其实就是个数轴,而这个数轴两端即为-1和1,即

unity键盘按ese弹出菜单 unity输入按键_unity_04

当我按按键1时这个数从0连续的丝滑的过度到-1,而这个轴中的按键1和2都可以通过unity中的Input Manger去设置(其实就是unity提供给你一个可以自定义按键的功能)

 

unity键盘按ese弹出菜单 unity输入按键_浮点数_05

unity键盘按ese弹出菜单 unity输入按键_键位_06

“名称”这一参数。

终于理解虚拟轴这个玩意了,那接下来就是虚拟轴的用法了

        先抛出方法

axisName:即为上文中的”名称“

               GetAxis(string axisName)                                返回一个-1到1之间的浮点数

既然返回的浮点数了,那和前面的用法肯定就有区别了(当然,一般有代码基础的友友应该已经猜到要怎么用了)

         用法

using UnityEngine;

public class HelloWorld : MonoBehaviour
{
    void Update()
    {
        if (Input.GetAxis("Horizontal") > 0)
        {
            Debug.Log("按下了D键");
        }
        if (Input.GetAxis("Horizontal") < 0)
        {
            Debug.Log("按下了A键");
        }
        else
        {
            Debug.Log("没按键");
        }
    }
}

以上即为我学到的输入控制的所有东西,希望可以帮到你。

如果都看到这里了,那你一定会给个关注的吧,对吧,对吧

unity键盘按ese弹出菜单 unity输入按键_unity_07


尾声(以下就是作者自己发牢骚专区了,没什么有用内容)

作为第一次写博客,没想到竟然坚持着写完了,还写了2000字,这样回头看真的好不可思议,不过感觉还不错,不过想我这种没什么毅力的人,希望这第一期不是最后一期吧

unity键盘按ese弹出菜单 unity输入按键_键位_08