网站建设方法有那几种,最近的新闻有哪些,wordpress素材库无法显示,怎么样才能自己建网站使用Unity的Input.GetAxis(“”)控制物体移动、旋转
Input.GetAxis(“”) 是 Unity 引擎中的一个方法#xff0c;用于获取游戏玩家在 键盘 或 游戏手柄 上输入的某个轴#xff08;Axis#xff09;的值。这里的 “” 是一个字符串参数#xff0c;表示要获取的轴的名称。
在…使用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”); //对应鼠标左键或leftCtrl GetAxis(“Fire2”); //对应鼠标右键或leftAlt GetAxis(“Fire3”); //对应鼠标中键是按不是前后滑动或leftshift GetAxis(“Mouse ScrollWheel”); //对应鼠标中键前后滑动不是按 GetAxisRaw(“Fire1”);
input.getAxis()和input.getAxisRaw()的区别
input.getAxis()的返回值m从0渐变为1或者-1
input.getAxisRaw()的返回值从0变成1或者-1没有渐变