Unity获取用户输入
Unity获取用户输入
基本概念
unity
中使用Input.GetAxis()
或Input.GetAxisRaw()
接口来获得用户输入,这两个接口的返回值取值范围为[-1,1],具有以下特性:
- 该值的含义取决于输入控制的类型,例如,对于游戏杆的水平轴,值为 1 表示游戏杆向右推到底,值为 -1 表示游戏杆向左推到底;值为 0 表示游戏杆处于中性位置。
- 对于鼠标:如果将轴映射到鼠标,该值会有所不同,并且不会在 -1...1 的范围内。此时,该值为当前鼠标增量乘以轴灵敏度。通常,正值表示鼠标向右/向下移动,负值表示鼠标向左/向上移动。
- 该值与帧率无关;使用该值时,您无需担心帧率变化问题。
区别
- GetAxis():unity进行了输入平滑处理,水平范围和垂直范围从 0 变为 +1 或 -1,以 0.05f 的步幅增加/减少。
- GetAxisRaw():对于键盘和游戏杆输入,该值将处于 -1...1 的范围内。 由于未对输入进行平滑处理,键盘输入将始终为 -1、0 或 1。 如果您想自己完成键盘输入的所有平滑处理,这非常有用。
输入
接口要求输入string
类型的axisName
,常见的取值如下所示
float x= Input.GetAxis("Horizontal");//对应键盘上的A键和D键 或←键和→键
float z = Input.GetAxis("Vertical"); //对应键盘上的W键和S键 或↑键和↓键
float h = Input.GetAxis("Mouse X"); //对应X方向上鼠标的移动,在移动设备上也可以这样
float v = Input.GetAxis("Mouse Y"); //对应Y方向上鼠标的移动,在移动设备上也可以这样
float m = Input.GetAxis("Fire1"); //对应鼠标左键或left+Ctrl
float n = Input.GetAxis("Fire2"); //对应鼠标右键或left+Alt
float k = Input.GetAxis("Fire3"); //对应鼠标中键或left+shift
要设置输入或查看axisName
** ** 的选项,请转到Edit >Project Settings ** >** Input Manager(“编辑”>“项目设置”>“输入管理器”) 。这将打开输入管理器。展开 Axis 以查看当前输入的列表。您可以将其中之一用作 axisName
.要重命名输入或更改正按钮等,请展开其中一个选项,然后更改“名称”字段或“正按钮”字段中的名称。此外,将“类型”更改为“操纵杆轴”。若要添加新输入,请将“大小”字段中的数字加 1。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!