【Unity入门】Input.GetAxis(““)控制物体移动、旋转

这篇具有很好参考价值的文章主要介绍了【Unity入门】Input.GetAxis(““)控制物体移动、旋转。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Unity的Input.GetAxis(“”)控制物体移动、旋转

Input.GetAxis(“”) 是 Unity 引擎中的一个方法,用于获取游戏玩家在 键盘 或 游戏手柄 上输入的某个轴(Axis)的值。这里的 “” 是一个字符串参数,表示要获取的轴的名称。

在 Unity 中,有多种轴类型,如 “Horizontal”(水平轴)、“Vertical”(垂直轴)、“Mouse X”(鼠标水平滚轮轴)和 “Mouse Y”(鼠标垂直滚轮轴)等。这些轴的值可以用来控制游戏角色的移动、缩放或旋转等动作。这些数值都处于-1 到1 之间,你可以用代码:

        /*控制左右,x轴*/
        float h = Input.GetAxis("Horizontal");
        /*控制前后,z轴*/
        float v = Input.GetAxis("Vertical");
        /*鼠标中间前后滑轮控制上下,y轴*/
        float mouse = Input.GetAxis("Mouse ScrollWheel");
        this.transform.Translate(new Vector3(h * speed, mouse * mouseSpeed, v * speed)*Time.deltaTime, Space.World);

来控制移动

参数 Horizontal

以 “Horizontal” 为例,Input.GetAxis(“Horizontal”) 方法会返回一个值,表示玩家在水平方向上输入的值。如果玩家向左移动键盘或游戏手柄,该值将为负;如果玩家向右移动,该值将为正。
注:该轴默认是由 A、D 或 ←键、→键 来触发

参数 Vertical

Input.GetAxis("Vertical ") 方法会返回一个值,表示玩家在垂直方向上输入的值。如果玩家向下移动键盘或游戏手柄,该值将为负;如果玩家向上移动,该值将为正。
注:该轴默认是由 W、S 或 ↑键、↓键 来触发

参数 Mouse ScrollWheel

注:该轴默认是鼠标中间前后滑轮触发,不是按

参数 “Mouse X” 轴和 “Mouse Y” 轴

返回的值分别表示玩家在垂直方向、鼠标水平滚轮和鼠标垂直滚轮上的输入。

在代码中,我们可以将这些轴的值用于控制游戏角色的移动、旋转等动作。例如,在您提供的代码中,MoveHorizontal 和 MoveVertical 变量分别存储了水平轴和垂直轴的值,用于控制角色在水平方向和垂直方向上的移动。
示例代码:下面这个代码实现控制物体 移动和左右、上下旋转

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ConRole : MonoBehaviour
{
    // yong鼠标控制方向,用方向键控制移动
    // 设置角色的移动速度和旋转速度
    public float Movespeed = 15f;
    public float Rotatespeed = 10f;
 
    float RotationY;//用来累积存储用户每次移动鼠标得出的值
    float RotationX;//用来累积存储用户每次移动鼠标得出的值
 
    void Update()
    {
 
        // 【控制物体移动】获取水平方向和垂直方向的输入值
        float MoveHorizontal = Input.GetAxis("Horizontal");
        float MoveVertical = Input.GetAxis("Vertical");
        //全部存到一个向量里面
        Vector3 MoveDir = new Vector3(MoveHorizontal,0, MoveVertical);
        //上面这句不能保持物体朝自己的Z正方移动,因此用下面的语句
        transform.Translate(MoveDir * Movespeed * Time.deltaTime, Space.Self);
 
        //【控制物体旋转】
 
        // 获取鼠标的旋转输入值  ,Mouse X\ MouseY 是来源鼠标在水平方向的移动数值转换返回为-1 -  1 之间的数值
        float RotaY = Input.GetAxis("Mouse X");//鼠标水平移动返回-1  -  +  1,这个数值将来用来给物体绕Y轴旋转
        float RotaX = Input.GetAxis("Mouse Y");//鼠标水平移动返回-1  -  +  1,这个数值将来用来给物体绕X轴旋转
 
        //这是使用欧拉角的旋转方式,这种旋转有个缺陷就是,旋转一个轴没有问题!不能同时旋转2个及以上的轴。
        //transform.Rotate(new Vector3(RotaX * Rotatespeed,RotaY * Rotatespeed,0),Space.Self); 
        //旋转2个及以上的轴,需要用四元数赋值给Retation
        RotationY += RotaY * Rotatespeed*Time.deltaTime;
        RotationX+= RotaX * Rotatespeed * Time.deltaTime;
        this.transform.rotation = Quaternion.Euler(RotationX, RotationY, 0);
        LimtRotatX();
    }
 
    void LimtRotatX()
    {//限制了上下旋转也就是围绕X轴旋转的最小角度和最大角度  !注意 -50 代表后仰旋转!60  度代表了!往前旋转!
        RotationX = Mathf.Clamp(RotationX,-50,60);
  }
}
其他参数
  • GetAxis(“Horizontal”);//对应键盘上的A键和D键 或←键和→键

  • GetAxis(“Vertical”); //对应键盘上的W键和S键 或↑键和↓键

  • GetAxis(“Mouse X”); //对应X方向上鼠标的移动,在移动设备上也可以这样

  • GetAxis(“Mouse Y”); //对应Y方向上鼠标的移动,在移动设备上也可以这样

  • GetAxis(“Fire1”); //对应鼠标左键或left+Ctrl

  • GetAxis(“Fire2”); //对应鼠标右键或left+Alt

  • GetAxis(“Fire3”); //对应鼠标中键(是按,不是前后滑动)或left+shift

  • GetAxis(“Mouse ScrollWheel”); //对应鼠标中键前后滑动(不是按)

  • GetAxisRaw(“Fire1”);

input.getAxis()和input.getAxisRaw()的区别

input.getAxis()的返回值m从0渐变为1或者-1

input.getAxisRaw()的返回值从0变成1或者-1,没有渐变文章来源地址https://www.toymoban.com/news/detail-796254.html

到了这里,关于【Unity入门】Input.GetAxis(““)控制物体移动、旋转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity 通过键盘鼠标控制物体移动、旋转、缩放的方法

    在Unity中,使用键盘ADWS键控制物体移动,通过鼠标左键控制物体旋转,鼠标中键控制物体缩放是再常见不过的方法。 方法如下:  效果如下:Unity 通过键盘鼠标控制物体移动、旋转、缩放_哔哩哔哩_bilibili

    2024年02月03日
    浏览(51)
  • Unity3D 控制物体移动且自动旋转

    直接上代码(改脚本挂载到游戏物体上) 第三人称摄像机移动

    2024年02月15日
    浏览(83)
  • 【Unity入门】11.脚本控制物体旋转

        大家好,我是Lampard~~     欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (1)创建RotateLogic脚本     上一篇文章我们学习了如何在脚本中获取物体对象,并使用transform组件下的translate接口使物体运动     今天我们进一步学习,用脚本控制物体的旋转。首先

    2024年02月04日
    浏览(45)
  • 【Unity】摄像机跟随鼠标移动以物体为中心旋转 物体根据视线方向移动

    描述 实现摄像机根据鼠标移动跟随物体旋转,以摄像机前物体为中心,摄像机围绕物体旋转,并使摄像机时刻指向物体 实现效果 Unity 组件设置 Camera 组件设置 Body 组件设置 实现代码 CameraRotateMove.cs 摄像机跟随和旋转 move_better.cs 物体根据按键移动

    2024年02月08日
    浏览(91)
  • Unity Dotween插件物体、ui的移动 旋转 缩放效果

    Unity Dotween插件物体、ui的移动 旋转 缩放效果 #脚本应用命名空间 using DG.Tweening; ##让游戏物体平移 //参数一:要移动到的位置 //参数二:动画完成要多少秒 transform.DOMove(new Vector3(1,3, 8.08f),5.5f); ##让游戏物体旋转 //参数一:要旋转成的样子的坐标 //参数二:旋转动画多少秒完成 trans

    2024年02月01日
    浏览(52)
  • Unity 控制物体移动

    目录 1、通过改变物体的位置使物体移动 2、通过给物体施加力使物体移动 3、移动characterController以及碰撞检测 一、相关代码展示 1、通过改变物体的位置使物体移动 2、通过给物体施加力使物体移动 3、移动characterController 以及碰撞检测 注:使用时首先要给物体添加CharacterC

    2024年02月13日
    浏览(48)
  • Unity 之利用 localEulerAngle与EulerAngle 控制物体旋转

    欧拉角(Euler Angles)是一种常用于描述物体在三维空间中旋转的方法。它使用三个角度来表示旋转,分别绕物体的三个坐标轴(通常是X、Y和Z轴)进行旋转。这种表示方式的优势是直观且易于理解,但也存在一些问题,如万向锁问题。下面是一些关于欧拉角的重要概念: 欧拉

    2024年02月11日
    浏览(41)
  • 【Unity脚本开源】记录鼠标按下的位置和移动的距离来进行物体的旋转,并在鼠标释放后将物体恢复到初始旋转位置

    ♥️作者:白日参商 🤵‍♂️个人主页:白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油! 加油! 加油 🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+! 提针对这个需求,以下是示例脚本代码: ♥️作者

    2024年02月12日
    浏览(44)
  • Unity上接入手柄,手柄控制游戏物体移动

    1、unity软件上安装system input 组件。菜单栏【window】-【Packag Manager】打开如下界面,查找Input System,并且安装。 2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。 3、双击【XinputControllerW

    2024年04月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包