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

相关推荐
拾光向日葵13 小时前
江西物理类本科线上30—50分,能报南昌科技职业大学本科专业吗?
学习·其他
AI_零食14 小时前
健身室器材管理系统鸿蒙PC Electron框架编写深度解析
前端·javascript·学习·华为·electron·前端框架·鸿蒙
ZC跨境爬虫14 小时前
跟着 MDN 学 JavaScript day_2:JavaScript 初体验
开发语言·前端·javascript·学习·ecmascript
海绵宝宝的月光宝盒14 小时前
SolidWorks 工程图内容丢失(不显示)解决方法
经验分享·笔记·其他·课程设计·制造·学习方法
爱喝水的鱼丶14 小时前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第五篇:性能优化与上线运维:保障高并发场景下的工具稳定运行
运维·学习·性能优化·sap·abap·erp·经验交流
nashane14 小时前
HarmonyOS 6学习:NFC服务中IsoDep连接失败的排查与解决——从参数匹配到多SDK协同的完整指南
学习·华为·harmonyos
xiaoshuaishuai814 小时前
C# AvaloniaUI ProgressBar用法
开发语言·c#
悠哉悠哉愿意15 小时前
【单片机复习笔记】十五届国赛复盘
笔记·单片机·嵌入式硬件·学习
智者知已应修善业15 小时前
【51单片机按键控制1分钟正计时倒计时暂停复位】2024-1-2
c++·经验分享·笔记·算法·51单片机
秋漓15 小时前
Nginx学习与应用
运维·学习·nginx