前言:本文主要针对unity的脚本,本人学习时长不是很多,所以其中可能会出现错误,欢迎大佬指出,希望接下来的内容可以帮助到你。(Ok,叠甲结束,废话不多说,接下来开始正文)
键盘鼠标,虚拟轴和手机的触控(本文主要讨论前两类)。这里我们要先有个概念,即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的区别
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中,虚拟轴(Virtual Axis)是用于表示输入的一种抽象概念。虚拟轴通常用于表示连续的输入,例如移动方向、摇杆的位置、滚轮的滚动等。它的值通常在-1到1之间,表示输入的强度或方向。(在网上没找到确切概念,这段选择截取GPT的解释)
这样的解释不知道你是否能看懂,这里我用我自己的理解再解释一遍
虚拟轴,其实就是个数轴,而这个数轴两端即为-1和1,即
当我按按键1时这个数从0连续的丝滑的过度到-1,而这个轴中的按键1和2都可以通过unity中的Input Manger去设置(其实就是unity提供给你一个可以自定义按键的功能)
“名称”这一参数。
终于理解虚拟轴这个玩意了,那接下来就是虚拟轴的用法了
先抛出方法
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("没按键");
}
}
}
以上即为我学到的输入控制的所有东西,希望可以帮到你。
如果都看到这里了,那你一定会给个关注的吧,对吧,对吧
尾声(以下就是作者自己发牢骚专区了,没什么有用内容)
作为第一次写博客,没想到竟然坚持着写完了,还写了2000字,这样回头看真的好不可思议,不过感觉还不错,不过想我这种没什么毅力的人,希望这第一期不是最后一期吧