unity中的Horizontal和Vertical介绍
什么是输入轴
输入轴(Input Axis)是unity中用于处理玩家输入的一种抽象概念,可以代表一个方向或一个动作,例如移动、旋转、射击等,输入轴可以是键盘按键、鼠标移动、游戏手柄摇杆或按钮等输入设备的具体输入
Horizontal轴
用于处理水平方向的输入,通过对应于键盘上的左右键(← 和 →)或游戏手柄上的左摇杆和水平移动
Vertical轴
用于处理垂直方向的输入,通常对应于键盘上的上下键(↑ 和 ↓)或游戏手柄上的左摇杆的垂直移动
使用方式
csharp
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
取值范围都是[-1, 1]
示例:移动角色
csharp
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
void Update()
{
//获取水平和垂直输入
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
//计算移动方向
Vector3 moveDirection = new Vector3(horizontalInput, 0, verticalInput).normalized;
//应用移动
transform.Translate(moveDirection * moveSpeed * Time.deltaTime);
}
}
- horizontalInput 和 verticalInput 分别获取水平和垂直方向的输入
- moveDirection 计算出移动方向,并确保方向向量的模长为 1(使用 normalized)
- transform.Translate 方法根据 moveDirection 和 moveSpeed 移动游戏对象
Input.GetAxis和Input.GetAxisRaw的区别
- Input.GetAxis返回的值是经过平滑处理的,适用于需要平滑移动的情况
- Input.GetAxisRaw返回的值是未经过平滑处理的,直接是-1, 0, 1,适用于需要精确输入的情况
设置输入轴
unity默认是已经配置了Horizontal和vertical轴的,可以在edit->project settings->Input Manager中查看和修改轴的配置