【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个及以上的轴,需要用四元数赋值给RetationRotationY += 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,没有渐变

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01.让自己习惯C++

让自己习惯C 条款1:视C为一个语言联邦 条款1中提到了将C看作为一个“语言联邦”的概念。具体来说,“语言联邦”是指将C看作由多种不同的子语言组成的联邦。每种子语言都有自己的惯用法、工具和库,可以用来解决特定的问题。因此,…

『亚马逊云科技产品测评』活动征文|低成本搭建物联网服务器thingsboard

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 0. 环境 - ubuntu22(注意4G内存勉强够,部署完…

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程 1 Postman工具简介2 Postman安装3 Postman界面说明4 一个简单请求4.1 请求示例4.2 请求过程 5 Postman其他操作5.1 import5.2 History5.3 Environment5.4 Global5.5 其他变…

使用信息面板沟通研发工作

凌鲨里面的内容面板里面有专门针对研发团队的白板功能,它可以把文档,图片,软件设计,需求,任务/缺陷等相关研发要素串接起来。 使用 你还可以调整背景颜色。 引用项目内数据 点击面板中的连接会在右侧打开对应内容

不要再往下翻了,你要的女宝穿搭我都有哦

分享女儿的睡衣穿搭 清新自然的浪漫紫 一眼就击中了我的心巴 软糯亲肤上身体验感超赞 轻松自在无束缚 防风又保暖,居家外出都可哦

SpringBoot实现文件批量打包下载

实现将指定的多个文件打包成一个压缩文件下载。 1. 引入pom依赖 <dependencies><!-- Spring Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency&…

Angular中的getter函数

Angular 中的 getter 函数每次被调用时会返回一个新对象时&#xff0c;这些新对象并不使用同一个堆内存。详细解释一下&#xff1a; Getter 函数的作用是获取某个属性的值。在 Angular 中&#xff0c;getter 函数通常用于获取响应式数据&#xff08;例如 Observables 或 Signal…

基于C#实现Kruskal算法

这篇我们看看第二种生成树的 Kruskal 算法&#xff0c;这个算法的魅力在于我们可以打一下算法和数据结构的组合拳&#xff0c;很有意思的。 一、思想 若存在 M{0,1,2,3,4,5}这样 6 个节点&#xff0c;我们知道 Prim 算法构建生成树是从”顶点”这个角度来思考的&#xff0c;然…

# Panda3d 碰撞检测系统介绍

Panda3d 碰撞检测系统介绍 文章目录 Panda3d 碰撞检测系统介绍碰撞几何体的介绍碰撞球体碰撞胶囊反碰撞球体碰撞平面碰撞多边形碰撞射线碰撞直线碰撞段碰撞抛物线碰撞长方体碰撞系统图碰撞处理器碰撞处理器队列碰撞处理器事件碰撞处理器回退模型(CollisionHandlerPusher)物理…

ArkTS基础知识 【习题】

判断题 1.循环渲染ForEach可以从数据源中迭代获取数据&#xff0c;并为每个数组项创建相应的组件。 正确(True) 2. Link变量不能在组件内部进行初始化。 正确(True) 单选题 1.用哪一种装饰器修饰的struct表示该结构体具有组件化能力&#xff1f;(A) A. Component B. Entry C…

c语言内存管理

通常程序访问的是虚拟内存&#xff0c;虚拟内存映射到物理内存的一小部分。 在Linux系统中&#xff0c;虚拟内存默认为4G的大小。每个进程都有独立的4G内存地址空间。 int main() {char s[] "hello world"; //s数组位于栈区&#xff0c;复制了一份字符串到数组里ch…

【设计模式-2.1】创建型——单例模式

说明&#xff1a;设计模式根据用途分为创建型、结构性和行为型。创建型模式主要用于描述如何创建对象&#xff0c;本文介绍创建型中的单例模式。 饿汉式单例 单例模式是比较常见的一种设计模式&#xff0c;旨在确保对象的唯一性&#xff0c;什么时候去使用这个对象都是同一个…

MySQL 批量插入记录报 Error 1390 (HY000)

文章目录 1.背景2.问题3.分批插入4.一次最多能插入多少条记录&#xff1f;参考文献 1.背景 Golang 后台服务使用 GORM 实现与 MySQL 的交互&#xff0c;在实现一个通过 Excel 导入数据的接口时&#xff0c;使用 Save 方法一次性插入大量记录&#xff08;>1w&#xff09;时报…

springsecurity6配置四

一、springsecurity自定义过滤url配置 package com.school.information.config;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;import java.util.List;/*** 需要放行的…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

不用排队升级GPT/获取api

想要在国内获取api key&#xff0c;可以使用这种方法 小技巧&#xff1a;目前GPT还是排队订阅&#xff0c;可以直接用链接&#xff1a;https://chat.openai.com/invite/accepted 即可跳过排队环节 接下来先看一下如何购买腾讯云服务器 第一步&#xff1a;打开腾讯云 腾讯云 …

Python爬虫知识储备

Python爬虫知识储备 一、基础知识 常见的Python爬虫相关库和工程化爬虫框架&#xff1a; 请求库&#xff1a; requests&#xff1a;用于发送HTTP请求并获取响应的流行库。它简单易用&#xff0c;适合大多数爬虫任务。urllib&#xff1a;Python的标准库之一&#xff0c;包含…

文件上传漏洞的理解

文件上传漏洞的理解 1. 漏洞描述&#xff1a; 文件上传漏洞是指攻击者可以利用Web应用程序中存在的缺陷&#xff0c;向服务器上传恶意文件&#xff0c;从而实施攻击或者获取敏感信息的安全漏洞 2. 漏洞原理&#xff1a; 文件上传漏洞通常是由于开发者在设计Web用于程序时未对上…

Visual Studio 2019 C# System.BadImageFormatException 解决方法

文章目录 1.DLL文件缺失或不匹配原因解决方法 2.系统环境变量Path下内容过多原因解决方法 3.位数错误原因解决方法 分析几种可能因素 1.DLL文件缺失或不匹配 原因 检查对应Debug路径下的DLL文件是否有缺失 解决方法 将对应的DLL文件放到Debug文件夹里面&#xff0c;检查冗余…

用结构体实现时间换算

【问题描述】用结构体类型表示时间内容&#xff08;时间以时分秒表示&#xff09;输入一个时间数据&#xff0c;在输入一个秒数n(n<60)&#xff0c;以h:m:s的形式输出过了n秒后的时间。&#xff08;超过24点以0点开始&#xff09; 【输入形式】输入的时间必须是以"时:分…