unity中的Horizontal和Vertical介绍

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中查看和修改轴的配置

相关推荐
程序员陆业聪9 分钟前
将相和:一场战国时期的职场生存智慧
笔记
●VON12 分钟前
小V健身助手开发手记(四):打造专属健康空间——以 PersonContent构建统一风格的个人中心
人工智能·学习·openharmony·开源鸿蒙·von
Aurora_eye14 分钟前
【早年HTML笔记】
笔记
●VON14 分钟前
小V健身助手开发手记(三):用成就点燃坚持——构建可视化激励系统
学习·openharmony·总结·开源鸿蒙·von
Nan_Shu_61419 分钟前
学习:Vue (2)
javascript·vue.js·学习
Trunktren20 分钟前
PCB软硬结合板全流程设计
笔记·硬件工程·pcb设计·pcb工艺·allegro
li星野41 分钟前
打工人日报#20251213
笔记
历程里程碑41 分钟前
C++ 6 :string类:高效处理字符串的秘密
c语言·开发语言·数据结构·c++·笔记·算法·排序算法
YJlio1 小时前
桌面工具学习笔记(11.1):BgInfo——给服务器桌面“刻”上关键信息
服务器·笔记·学习
爱倒腾的老唐1 小时前
00、Altium Designer 23 使用问题记录
笔记·php