Unity2D input.GetAxis()与input.GetAxisRaw()的相同点、区别以及简单用法

本文介绍了Unity中的input.GetAxis()和input.GetAxisRaw()函数的区别,包括它们的输入类型、返回值范围、平滑性特点,并通过示例展示了在物体运动和方向控制中的应用。适合了解这两个函数在游戏开发中的选择和使用。

目录

前言

一、input.GetAxis()与input.GetAxisRaw()的相同点、区别

二、简单用法

1.input.GetAxis()

2.input.GetAxisRaw()

三、总结


前言

input.GetAxis()与input.GetAxisRaw()是unity中的两个函数,他们长相相似,注定了他们的作用大同小异。这里我们就简单的聊聊他们。


一、input.GetAxis()input.GetAxisRaw()的相同点、区别

input.GetAxis()input.GetAxisRaw()两个函数的传入值都为string类型,返回值都为float类型

传入参数有两种:

Vertical:获得垂直方向的值。

Horizontal:获得水平方向的值。

这里制作了一个图方便理解:

 那么两者的区别是什么呢?

input.GetAxis()的返回值是[-1, 1],拥有平滑过渡功能

input.GetAxisRaw()的返回值是{-1,0,1}

补充一下:input.GetAxis()的值是根据你 按键时间 以及 按键顺序 决定。例如当你一直按住 “A键” ,input.GetAxis()的返回值会随时间从 0 到 1 ,但是中途如果按下了 “D键”,那么就会保持按下 “D键”时的返回值。

二、简单用法

1.input.GetAxis()

举个例子:简单的物体运动

代码如下(示例)

//获取物体组件
public Rigidbody2D rb;
//定义水平运动的速度
public float runspeed;

//物体运动
void Move()
    {
        //记录运动方向值
        float move = Input.GetAxis("Horizontal");

        //以给定速度朝指定方向运动
        rb.velocity = new Vector2(move * runspeed * Time.deltaTime, rb.velocity.y);
}

代码中如果将input.GetAxis()替换成input.GetAxisRaw(),会出现物体弹射起步的效果(没有过渡感),这里其实是因为input.GetAxisRaw()只有当我们未控制时值为0,当我们控制移动后则只存在-1,1两种情况,缺少了加速的过程。

2.input.GetAxisRaw()

举个例子:简单的物体运动时物体的朝向方向变动(在上一个例子的基础上)

代码如下(示例)

//获取物体组件
public Rigidbody2D rb;
//定义水平运动的速度
public float runspeed;

//物体运动
void Move()
    {
        //记录运动方向值
        float move = Input.GetAxis("Horizontal");
        if (move != 0)
        {
            //以给定速度朝指定方向运动
            rb.velocity = new Vector2(move * runspeed * Time.deltaTime, rb.velocity.y);
        }
    
        //记录运动方向值
        float direction = Input.GetAxisRaw("Horizontal"); 
        if (direction != 0)
        {
            //可以达到变换运动方向时立即变换物体贴图朝向(实时性)
            transform.localScale = new Vector3(direction, 1, 1);
        }
}

在我们2D项目中旋转角色方向的时候可以选用 Input.GetAxisRaw() ,因为我们希望它是可以完整反转,而不是翻转一半。

三、总结

input.GetAxis()与input.GetAxisRaw()使用时要选择合适的场景

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值